]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Bug #1128: Deletion of unnecessary checks before calls of the function “archive_entry... 1134/head
authorMarkus Elfring <elfring@users.sourceforge.net>
Mon, 4 Feb 2019 18:00:32 +0000 (19:00 +0100)
committerMarkus Elfring <elfring@users.sourceforge.net>
Mon, 4 Feb 2019 18:00:32 +0000 (19:00 +0100)
The function “archive_entry_free” is implemented in the way that only
two functions are called which tolerate the passing of null pointers.
It is therefore not needed that a function caller repeats a corresponding check.

This issue was fixed by using the software “Coccinelle 1.0.7”.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
libarchive/archive_write_disk_posix.c
libarchive/archive_write_disk_windows.c
libarchive/archive_write_set_format_cpio.c
libarchive/archive_write_set_format_cpio_newc.c
libarchive/archive_write_set_format_gnutar.c
libarchive/archive_write_set_format_shar.c
libarchive/archive_write_set_format_ustar.c
libarchive/archive_write_set_format_v7tar.c
libarchive/archive_write_set_format_zip.c

index 003e17d77367f5f3fb0c2ddcb38c40b579a20d49..3ed281df23f320a221109c89160af16854fe62ef 100644 (file)
@@ -1791,10 +1791,8 @@ finish_metadata:
                a->fd = -1;
        }
        /* If there's an entry, we can release it now. */
-       if (a->entry) {
-               archive_entry_free(a->entry);
-               a->entry = NULL;
-       }
+       archive_entry_free(a->entry);
+       a->entry = NULL;
        a->archive.state = ARCHIVE_STATE_HEADER;
        return (ret);
 }
@@ -2398,8 +2396,7 @@ _archive_write_disk_free(struct archive *_a)
        ret = _archive_write_disk_close(&a->archive);
        archive_write_disk_set_group_lookup(&a->archive, NULL, NULL, NULL);
        archive_write_disk_set_user_lookup(&a->archive, NULL, NULL, NULL);
-       if (a->entry)
-               archive_entry_free(a->entry);
+       archive_entry_free(a->entry);
        archive_string_free(&a->_name_data);
        archive_string_free(&a->archive.error_string);
        archive_string_free(&a->path_safe);
index 78eda4abc8d1bde5f9c03b9c007b66f858fb9387..135dd97eacac129acd319ffe9bd8e2d9293bc6a2 100644 (file)
@@ -696,10 +696,8 @@ _archive_write_disk_header(struct archive *_a, struct archive_entry *entry)
        a->pst = NULL;
        a->current_fixup = NULL;
        a->deferred = 0;
-       if (a->entry) {
-               archive_entry_free(a->entry);
-               a->entry = NULL;
-       }
+       archive_entry_free(a->entry);
+       a->entry = NULL;
        a->entry = archive_entry_clone(entry);
        a->fh = INVALID_HANDLE_VALUE;
        a->fd_offset = 0;
@@ -1145,10 +1143,8 @@ _archive_write_disk_finish_entry(struct archive *_a)
                a->fh = INVALID_HANDLE_VALUE;
        }
        /* If there's an entry, we can release it now. */
-       if (a->entry) {
-               archive_entry_free(a->entry);
-               a->entry = NULL;
-       }
+       archive_entry_free(a->entry);
+       a->entry = NULL;
        a->archive.state = ARCHIVE_STATE_HEADER;
        return (ret);
 }
@@ -1690,8 +1686,7 @@ _archive_write_disk_free(struct archive *_a)
        ret = _archive_write_disk_close(&a->archive);
        archive_write_disk_set_group_lookup(&a->archive, NULL, NULL, NULL);
        archive_write_disk_set_user_lookup(&a->archive, NULL, NULL, NULL);
-       if (a->entry)
-               archive_entry_free(a->entry);
+       archive_entry_free(a->entry);
        archive_wstring_free(&a->_name_data);
        archive_string_free(&a->archive.error_string);
        archive_wstring_free(&a->path_safe);
index a4c9d1ed276d4e04b52c828d32444966df0c114b..16cefad7b5b326cb26a9059043be9ef76b9f7829 100644 (file)
@@ -408,8 +408,7 @@ write_header(struct archive_write *a, struct archive_entry *entry)
                }
        }
 exit_write_header:
-       if (entry_main)
-               archive_entry_free(entry_main);
+       archive_entry_free(entry_main);
        return (ret_final);
 }
 
index 957f1a333a6ac98ddaf9bf3251658a7128abe702..2d923cc33061fa4855a6fdbe69e90b898616d81a 100644 (file)
@@ -366,8 +366,7 @@ write_header(struct archive_write *a, struct archive_entry *entry)
                }
        }
 exit_write_header:
-       if (entry_main)
-               archive_entry_free(entry_main);
+       archive_entry_free(entry_main);
        return (ret_final);
 }
 
index 1966c53fff147cf236109fc5f23949d8f89c8ba5..e7757c22badd50e0888a9a8ddfa011d499d1f0bc 100644 (file)
@@ -565,8 +565,7 @@ archive_write_gnutar_header(struct archive_write *a,
        gnutar->entry_bytes_remaining = archive_entry_size(entry);
        gnutar->entry_padding = 0x1ff & (-(int64_t)gnutar->entry_bytes_remaining);
 exit_write_header:
-       if (entry_main)
-               archive_entry_free(entry_main);
+       archive_entry_free(entry_main);
        return (ret);
 }
 
index 4fe627786620bfc186871d65bbd8dc5a23462951..600c88257a0cef1f5925eec8fefdda3d46e30b91 100644 (file)
@@ -169,8 +169,7 @@ archive_write_shar_header(struct archive_write *a, struct archive_entry *entry)
        }
 
        /* Save the entry for the closing. */
-       if (shar->entry)
-               archive_entry_free(shar->entry);
+       archive_entry_free(shar->entry);
        shar->entry = archive_entry_clone(entry);
        name = archive_entry_pathname(entry);
 
index c54aeabdb198a08c291b41d07cbb0134ffc5e25f..ad4ccb77ea53a6c09dcd2fcab710e185c89cd68c 100644 (file)
@@ -352,14 +352,12 @@ archive_write_ustar_header(struct archive_write *a, struct archive_entry *entry)
 #endif
        ret = __archive_write_format_header_ustar(a, buff, entry, -1, 1, sconv);
        if (ret < ARCHIVE_WARN) {
-               if (entry_main)
-                       archive_entry_free(entry_main);
+               archive_entry_free(entry_main);
                return (ret);
        }
        ret2 = __archive_write_output(a, buff, 512);
        if (ret2 < ARCHIVE_WARN) {
-               if (entry_main)
-                       archive_entry_free(entry_main);
+               archive_entry_free(entry_main);
                return (ret2);
        }
        if (ret2 < ret)
@@ -367,8 +365,7 @@ archive_write_ustar_header(struct archive_write *a, struct archive_entry *entry)
 
        ustar->entry_bytes_remaining = archive_entry_size(entry);
        ustar->entry_padding = 0x1ff & (-(int64_t)ustar->entry_bytes_remaining);
-       if (entry_main)
-               archive_entry_free(entry_main);
+       archive_entry_free(entry_main);
        return (ret);
 }
 
index 53c0db0e2041d4b924e606c35453af31be077a07..1fdaafd2a93911faa01b2a14487b7c421c8cdacf 100644 (file)
@@ -330,14 +330,12 @@ archive_write_v7tar_header(struct archive_write *a, struct archive_entry *entry)
 #endif
        ret = format_header_v7tar(a, buff, entry, 1, sconv);
        if (ret < ARCHIVE_WARN) {
-               if (entry_main)
-                       archive_entry_free(entry_main);
+               archive_entry_free(entry_main);
                return (ret);
        }
        ret2 = __archive_write_output(a, buff, 512);
        if (ret2 < ARCHIVE_WARN) {
-               if (entry_main)
-                       archive_entry_free(entry_main);
+               archive_entry_free(entry_main);
                return (ret2);
        }
        if (ret2 < ret)
@@ -345,8 +343,7 @@ archive_write_v7tar_header(struct archive_write *a, struct archive_entry *entry)
 
        v7tar->entry_bytes_remaining = archive_entry_size(entry);
        v7tar->entry_padding = 0x1ff & (-(int64_t)v7tar->entry_bytes_remaining);
-       if (entry_main)
-               archive_entry_free(entry_main);
+       archive_entry_free(entry_main);
        return (ret);
 }
 
index 45a0452f6bc312e78cf5722eac45654acd218df8..7fcd1a07b3f5fab6a341859b304808b1e6520bf2 100644 (file)
@@ -564,10 +564,8 @@ archive_write_zip_header(struct archive_write *a, struct archive_entry *entry)
        zip->entry_uses_zip64 = 0;
        zip->entry_crc32 = zip->crc32func(0, NULL, 0);
        zip->entry_encryption = 0;
-       if (zip->entry != NULL) {
-               archive_entry_free(zip->entry);
-               zip->entry = NULL;
-       }
+       archive_entry_free(zip->entry);
+       zip->entry = NULL;
 
        if (zip->cctx_valid)
                archive_encrypto_aes_ctr_release(&zip->cctx);