]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
libarchive: Handle a `calloc` returning NULL (fixes #1754) 1759/head
authorobiwac <obiwac@gmail.com>
Fri, 22 Jul 2022 20:41:10 +0000 (22:41 +0200)
committerobiwac <obiwac@gmail.com>
Fri, 22 Jul 2022 20:41:10 +0000 (22:41 +0200)
libarchive/archive_write.c

index 66592e8268ab4354b95530b6714b6d21d8d65554..27626b54147fd83390fdb7fc8fa292219d62b320 100644 (file)
@@ -201,6 +201,10 @@ __archive_write_allocate_filter(struct archive *_a)
        struct archive_write_filter *f;
 
        f = calloc(1, sizeof(*f));
+
+       if (f == NULL)
+               return (NULL);
+
        f->archive = _a;
        f->state = ARCHIVE_WRITE_FILTER_STATE_NEW;
        if (a->filter_first == NULL)
@@ -548,6 +552,10 @@ archive_write_open2(struct archive *_a, void *client_data,
        a->client_data = client_data;
 
        client_filter = __archive_write_allocate_filter(_a);
+
+       if (client_filter == NULL)
+               return (ARCHIVE_FATAL);
+
        client_filter->open = archive_write_client_open;
        client_filter->write = archive_write_client_write;
        client_filter->close = archive_write_client_close;