summaryrefslogtreecommitdiff
path: root/libarchive/archive_write_add_filter_program.c
diff options
context:
space:
mode:
authorMichihiro NAKAJIMA <ggcueroad@gmail.com>2012-11-11 19:29:28 +0900
committerMichihiro NAKAJIMA <ggcueroad@gmail.com>2012-11-11 19:29:28 +0900
commitb58d814f581a181bac80f12f43820200206b6a56 (patch)
tree9c72c9f5a8a69efc48a40f6aa3b555fd1f97888f /libarchive/archive_write_add_filter_program.c
parent4c04c780d65a784fbf3bbb0cc83388e019392e04 (diff)
downloadlibarchive-b58d814f581a181bac80f12f43820200206b6a56.tar.gz
Fix a bug that Clang Static Analyzer complains that
"Dereference of null pointer".
Diffstat (limited to 'libarchive/archive_write_add_filter_program.c')
-rw-r--r--libarchive/archive_write_add_filter_program.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/libarchive/archive_write_add_filter_program.c b/libarchive/archive_write_add_filter_program.c
index 796586c1..fc232da0 100644
--- a/libarchive/archive_write_add_filter_program.c
+++ b/libarchive/archive_write_add_filter_program.c
@@ -160,10 +160,13 @@ archive_compressor_program_free(struct archive_write_filter *f)
{
struct private_data *data = (struct private_data *)f->data;
- free(data->cmd);
- archive_string_free(&data->description);
- __archive_write_program_free(data->pdata);
- free(data);
+ if (data) {
+ free(data->cmd);
+ archive_string_free(&data->description);
+ __archive_write_program_free(data->pdata);
+ free(data);
+ f->data = NULL;
+ }
return (ARCHIVE_OK);
}