summaryrefslogtreecommitdiff
path: root/libarchive/archive_read_support_format_tar.c
diff options
context:
space:
mode:
authorMichihiro NAKAJIMA <ggcueroad@gmail.com>2012-12-03 12:36:06 +0900
committerMichihiro NAKAJIMA <ggcueroad@gmail.com>2012-12-03 12:36:06 +0900
commit6523adb4e186b6a961e9d8b3c1e7f3925e3a2e8a (patch)
treef5b17366197a3f7860302ad729c452297467851c /libarchive/archive_read_support_format_tar.c
parentc41be1e242e3316800bafc1fb3f234404f4dff52 (diff)
downloadlibarchive-6523adb4e186b6a961e9d8b3c1e7f3925e3a2e8a.tar.gz
Use a proper structure for a test for gnutar header.
Diffstat (limited to 'libarchive/archive_read_support_format_tar.c')
-rw-r--r--libarchive/archive_read_support_format_tar.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libarchive/archive_read_support_format_tar.c b/libarchive/archive_read_support_format_tar.c
index 7ae2e0b5..e9523cb6 100644
--- a/libarchive/archive_read_support_format_tar.c
+++ b/libarchive/archive_read_support_format_tar.c
@@ -617,6 +617,7 @@ tar_read_header(struct archive_read *a, struct tar *tar,
int err;
const char *h;
const struct archive_entry_header_ustar *header;
+ const struct archive_entry_header_gnutar *gnuheader;
tar_flush_unconsumed(a, unconsumed);
@@ -704,7 +705,8 @@ tar_read_header(struct archive_read *a, struct tar *tar,
err = header_pax_extensions(a, tar, entry, h, unconsumed);
break;
default:
- if (memcmp(header->magic, "ustar \0", 8) == 0) {
+ gnuheader = (const struct archive_entry_header_gnutar *)h;
+ if (memcmp(gnuheader->magic, "ustar \0", 8) == 0) {
a->archive.archive_format = ARCHIVE_FORMAT_TAR_GNUTAR;
a->archive.archive_format_name = "GNU tar format";
err = header_gnutar(a, tar, entry, h, unconsumed);