From: Michael Santos Date: Sat, 19 Mar 2011 15:10:34 +0000 (-0400) Subject: arguments: check allocation succeeds X-Git-Tag: lxc-0.7.5~47 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6d10f1fcdc50789ffab87313a9b54d15ba4365db;p=thirdparty%2Flxc.git arguments: check allocation succeeds Signed-off-by: Michael Santos Signed-off-by: Daniel Lezcano --- diff --git a/src/lxc/arguments.c b/src/lxc/arguments.c index 3c11661c5..51ebadbe9 100644 --- a/src/lxc/arguments.c +++ b/src/lxc/arguments.c @@ -96,6 +96,9 @@ static void print_usage(const struct option longopts[], int j; char *uppername = strdup(opt->name); + if (!uppername) + exit(-ENOMEM); + for (j = 0; uppername[j]; j++) uppername[j] = toupper(uppername[j]); @@ -217,15 +220,22 @@ extern char **lxc_arguments_dup(const char *file, struct lxc_arguments *args) nbargs = 0; - argv[nbargs++] = strdup(file); + argv[nbargs] = strdup(file); + if (!argv[nbargs]) + return NULL; + nbargs++; if (args->quiet) argv[nbargs++] = "--quiet"; argv[nbargs++] = "--"; - for (opt = 0; opt < args->argc; opt++) - argv[nbargs++] = strdup(args->argv[opt]); + for (opt = 0; opt < args->argc; opt++) { + argv[nbargs] = strdup(args->argv[opt]); + if (!argv[nbargs]) + return NULL; + nbargs++; + } argv[nbargs] = NULL;