summaryrefslogtreecommitdiffstats
path: root/src/generator.ml
diff options
context:
space:
mode:
authorRichard Jones <rjones@redhat.com>2009-04-30 13:35:36 +0100
committerRichard Jones <rjones@redhat.com>2009-04-30 13:35:36 +0100
commit6dff51fc7d8a33925f164bd66c2c26cd4b94b3df (patch)
treea3fdebfd9b270c9f205255da7c27949e22c7b9dd /src/generator.ml
parent668d27b56857230fb81c04d1663a5aca1b9e77b9 (diff)
downloadlibguestfs-6dff51fc7d8a33925f164bd66c2c26cd4b94b3df.tar.gz
libguestfs-6dff51fc7d8a33925f164bd66c2c26cd4b94b3df.tar.xz
libguestfs-6dff51fc7d8a33925f164bd66c2c26cd4b94b3df.zip
Check return value from realloc call (Jim Meyering).
Diffstat (limited to 'src/generator.ml')
-rwxr-xr-xsrc/generator.ml11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/generator.ml b/src/generator.ml
index a7093768..a01eeb79 100755
--- a/src/generator.ml
+++ b/src/generator.ml
@@ -2767,9 +2767,14 @@ and generate_daemon_actions () =
| String n -> pr " %s = args.%s;\n" n n
| OptString n -> pr " %s = args.%s ? *args.%s : NULL;\n" n n n
| StringList n ->
- pr " args.%s.%s_val = realloc (args.%s.%s_val, sizeof (char *) * (args.%s.%s_len+1));\n" n n n n n n;
- pr " args.%s.%s_val[args.%s.%s_len] = NULL;\n" n n n n;
- pr " %s = args.%s.%s_val;\n" n n n
+ pr " %s = realloc (args.%s.%s_val,\n" n n n;
+ pr " sizeof (char *) * (args.%s.%s_len+1));\n" n n;
+ pr " if (%s == NULL) {\n" n;
+ pr " reply_with_perror (\"realloc\");\n";
+ pr " goto done;\n";
+ pr " }\n";
+ pr " %s[args.%s.%s_len] = NULL;\n" n n n;
+ pr " args.%s.%s_val = %s;\n" n n n;
| Bool n -> pr " %s = args.%s;\n" n n
| Int n -> pr " %s = args.%s;\n" n n
| FileIn _ | FileOut _ -> ()