From 6d10f1fcdc50789ffab87313a9b54d15ba4365db Mon Sep 17 00:00:00 2001 From: Michael Santos Date: Sat, 19 Mar 2011 11:10:34 -0400 Subject: [PATCH] arguments: check allocation succeeds Signed-off-by: Michael Santos Signed-off-by: Daniel Lezcano --- src/lxc/arguments.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) 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;