diff options
author | kientzle <kientzle@FreeBSD.org> | 2009-02-01 02:33:02 +0000 |
---|---|---|
committer | kientzle <kientzle@FreeBSD.org> | 2009-02-01 02:33:02 +0000 |
commit | 8211ee605742c9618dc15aec0951e7b5121c8466 (patch) | |
tree | 3e37dbbe929d5a2437a6b3550205a192f2a85098 /lib/libarchive | |
parent | 41ccd088c601ccdc3af29608e22e81b78a708b95 (diff) | |
download | FreeBSD-src-8211ee605742c9618dc15aec0951e7b5121c8466.zip FreeBSD-src-8211ee605742c9618dc15aec0951e7b5121c8466.tar.gz |
Permit ` as a pad character in the filename table.
This seems to fix the devel/zziplib port, which distributes
its man pages in an ar archive.
Diffstat (limited to 'lib/libarchive')
-rw-r--r-- | lib/libarchive/archive_read_support_format_ar.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/libarchive/archive_read_support_format_ar.c b/lib/libarchive/archive_read_support_format_ar.c index fed979d..0201364 100644 --- a/lib/libarchive/archive_read_support_format_ar.c +++ b/lib/libarchive/archive_read_support_format_ar.c @@ -511,11 +511,10 @@ ar_parse_gnu_filename_table(struct archive_read *a) } } /* - * Sanity check, last two chars must be `/\n' or '\n\n', - * depending on whether the string table is padded by a '\n' - * (string table produced by GNU ar always has a even size). + * GNU ar always pads the table to an even size. + * The pad character is either '\n' or '`'. */ - if (p != ar->strtab + size && *p != '\n') + if (p != ar->strtab + size && *p != '\n' && *p != '`') goto bad_string_table; /* Enforce zero termination. */ |