commit 0e4151c91c831ebe74e53ce14d639d291d4fc87f
parent 1ff488ca3fe6b2f625ef06d568c7c005e1870b55
Author: Christian Grothoff <christian@grothoff.org>
Date: Wed, 28 Aug 2013 09:31:59 +0000
-check for malloc failure
Diffstat:
1 file changed, 9 insertions(+), 0 deletions(-)
diff --git a/src/main/extract.c b/src/main/extract.c
@@ -643,6 +643,8 @@ _make_continuous_arg_copy (int argc, char *const *argv)
for (i = 0; i < argc; i++)
argvsize += strlen (argv[i]) + 1 + sizeof (char *);
new_argv = malloc (argvsize + sizeof (char *));
+ if (NULL == new_argv)
+ return NULL;
p = (char *) &new_argv[argc + 1];
for (i = 0; i < argc; i++)
{
@@ -702,6 +704,11 @@ _get_utf8_args (int argc, char *const *argv, int *u8argc, char ***u8argv)
}
*u8argv = _make_continuous_arg_copy (wargc, split_u8argv);
+ if (NULL == *u8argv)
+ {
+ free (split_u8argv);
+ return -1;
+ }
*u8argc = wargc;
for (i = 0; i < wargc; i++)
@@ -709,6 +716,8 @@ _get_utf8_args (int argc, char *const *argv, int *u8argc, char ***u8argv)
free (split_u8argv);
#else
*u8argv = _make_continuous_arg_copy (argc, argv);
+ if (NULL == *u8argv)
+ return -1;
*u8argc = argc;
#endif
return 0;