]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
RAR5 reader: fix maximum owner name length
authorMartin Matuska <martin@matuska.org>
Sat, 20 Apr 2019 08:27:46 +0000 (10:27 +0200)
committerMartin Matuska <martin@matuska.org>
Sat, 20 Apr 2019 08:27:46 +0000 (10:27 +0200)
Reported by: OSS-Fuzz issue 14331

libarchive/archive_read_support_format_rar5.c

index 7123e408a99523d7971fb0c0642b51e0e26cb858..a43afbfa0fc67a2a373e1fa52f3800b69f35f2b7 100644 (file)
@@ -1352,8 +1352,8 @@ static int parse_file_extra_owner(struct archive_read* a,
                *extra_data_size -= name_size + 1;
                if(!read_ahead(a, name_size, &p))
                        return ARCHIVE_EOF;
-               if (name_size > OWNER_MAXNAMELEN)
-                       name_len = OWNER_MAXNAMELEN;
+               if (name_size >= OWNER_MAXNAMELEN)
+                       name_len = OWNER_MAXNAMELEN - 1;
                else
                        name_len = name_size;
                memcpy(namebuf, p, name_len);
@@ -1369,8 +1369,8 @@ static int parse_file_extra_owner(struct archive_read* a,
                *extra_data_size -= name_size + 1;
                if(!read_ahead(a, name_size, &p))
                        return ARCHIVE_EOF;
-               if (name_size > OWNER_MAXNAMELEN)
-                       name_len = OWNER_MAXNAMELEN;
+               if (name_size >= OWNER_MAXNAMELEN)
+                       name_len = OWNER_MAXNAMELEN - 1;
                else
                        name_len = name_size;
                memcpy(namebuf, p, name_len);