summaryrefslogtreecommitdiffstats
path: root/libarchive/archive_write_set_format_7zip.c
diff options
context:
space:
mode:
Diffstat (limited to 'libarchive/archive_write_set_format_7zip.c')
-rw-r--r--libarchive/archive_write_set_format_7zip.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libarchive/archive_write_set_format_7zip.c b/libarchive/archive_write_set_format_7zip.c
index f63a226..fb7697f 100644
--- a/libarchive/archive_write_set_format_7zip.c
+++ b/libarchive/archive_write_set_format_7zip.c
@@ -52,6 +52,7 @@ __FBSDID("$FreeBSD$");
#include "archive_rb.h"
#include "archive_string.h"
#include "archive_write_private.h"
+#include "archive_write_set_format_private.h"
/*
* Codec ID
@@ -164,7 +165,7 @@ struct file {
mode_t mode;
uint32_t crc32;
- int dir:1;
+ signed int dir:1;
};
struct _7zip {
@@ -439,7 +440,8 @@ _7z_write_header(struct archive_write *a, struct archive_entry *entry)
r = file_new(a, entry, &file);
if (r < ARCHIVE_WARN) {
- file_free(file);
+ if (file != NULL)
+ file_free(file);
return (r);
}
if (file->size == 0 && file->dir) {