From: Joerg Sonnenberger Date: Tue, 6 Dec 2016 14:38:09 +0000 (+0100) Subject: Simplify by using strdup. Check for allocation failure. X-Git-Tag: v3.3.0~98 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d4d4f91251a084d036518afb8423350c48914bf1;p=thirdparty%2Flibarchive.git Simplify by using strdup. Check for allocation failure. --- diff --git a/libarchive/archive_options.c b/libarchive/archive_options.c index dbf3e80e9..6496025a5 100644 --- a/libarchive/archive_options.c +++ b/libarchive/archive_options.c @@ -26,6 +26,10 @@ #include "archive_platform.h" __FBSDID("$FreeBSD$"); +#ifdef HAVE_ERRNO_H +#include +#endif + #include "archive_options_private.h" static const char * @@ -105,8 +109,11 @@ _archive_set_options(struct archive *a, const char *options, if (options == NULL || options[0] == '\0') return ARCHIVE_OK; - data = (char *)malloc(strlen(options) + 1); - strcpy(data, options); + if ((data = strdup(options)) == NULL) { + archive_set_error(a, + ENOMEM, "Out of memory adding file to list"); + return (ARCHIVE_FATAL); + } s = (const char *)data; do {