From de64229632a333bca312df70fd58ca8970f10414 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 27 Oct 2022 13:14:52 -0700 Subject: Fix undefined behavior on bad extended header * src/xheader.c (locate_handler): Avoid undefined behavior if strlen(keyword) < kwlen. --- src/xheader.c | 4 ++-- 1 file 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); -- cgit v1.2.1