[lxc-devel] [PATCH 3/5] arguments: check allocation succeeds

Michael Santos michael.santos at gmail.com
Sat Mar 19 15:10:34 UTC 2011


Signed-off-by: Michael Santos <michael.santos at gmail.com>
---
 src/lxc/arguments.c |   16 +++++++++++++---
 1 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/lxc/arguments.c b/src/lxc/arguments.c
index 3c11661..51ebadb 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;
 
-- 
1.7.0.4





More information about the lxc-devel mailing list