diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2022-10-27 13:14:52 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2022-10-27 13:20:38 -0700 |
commit | de64229632a333bca312df70fd58ca8970f10414 (patch) | |
tree | ca1888e787515f884caa07645382c29027ecabed | |
parent | 17debecd7300e94f590b8ce167a8c0735cb6d57d (diff) | |
download | tar-de64229632a333bca312df70fd58ca8970f10414.tar.gz |
Fix undefined behavior on bad extended header
* src/xheader.c (locate_handler): Avoid undefined behavior
if strlen(keyword) < kwlen.
-rw-r--r-- | src/xheader.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/xheader.c b/src/xheader.c index dfab6500..08cb474a 100644 --- a/src/xheader.c +++ b/src/xheader.c @@ -561,7 +561,7 @@ locate_handler (char const *keyword) if (p->prefix) { size_t kwlen = strlen (p->keyword); - if (keyword[kwlen] == '.' && strncmp (p->keyword, keyword, kwlen) == 0) + if (strncmp (p->keyword, keyword, kwlen) == 0 && keyword[kwlen] == '.') return p; } else @@ -1636,7 +1636,7 @@ xattr_decoder (struct tar_stat_info *st, char const *keyword, char const *arg, size_t size) { char *xkey; - + /* copy keyword */ xkey = xstrdup (keyword); |