diff options
author | Michihiro NAKAJIMA <ggcueroad@gmail.com> | 2012-11-11 19:29:28 +0900 |
---|---|---|
committer | Michihiro NAKAJIMA <ggcueroad@gmail.com> | 2012-11-11 19:29:28 +0900 |
commit | b58d814f581a181bac80f12f43820200206b6a56 (patch) | |
tree | 9c72c9f5a8a69efc48a40f6aa3b555fd1f97888f /libarchive/archive_write_add_filter_program.c | |
parent | 4c04c780d65a784fbf3bbb0cc83388e019392e04 (diff) | |
download | libarchive-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.c | 11 |
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); } |