]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Xar reader: do not try to add xattrs without an allocated name
authorMartin Matuska <martin@matuska.org>
Thu, 16 May 2019 11:48:01 +0000 (13:48 +0200)
committerMartin Matuska <martin@matuska.org>
Thu, 16 May 2019 13:35:54 +0000 (15:35 +0200)
Fixes #795

libarchive/archive_read_support_format_xar.c

index 16ccfd2ac9214893b99a38bb819659c68c4e18f1..34253a52fb75332415f2ce286372c71ba3dd9a96 100644 (file)
@@ -821,8 +821,18 @@ xar_read_header(struct archive_read *a, struct archive_entry *entry)
                r = checksum_final(a,
                    xattr->a_sum.val, xattr->a_sum.len,
                    xattr->e_sum.val, xattr->e_sum.len);
-               if (r != ARCHIVE_OK)
+               if (r != ARCHIVE_OK) {
+                       archive_set_error(&(a->archive), ARCHIVE_ERRNO_MISC,
+                           "Xattr checksum error");
+                       r = ARCHIVE_WARN;
                        break;
+               }
+               if (xattr->name.s == NULL) {
+                       archive_set_error(&(a->archive), ARCHIVE_ERRNO_MISC,
+                           "Xattr name error");
+                       r = ARCHIVE_WARN;
+                       break;
+               }
                archive_entry_xattr_add_entry(entry,
                    xattr->name.s, d, outbytes);
                xattr = xattr->next;