diff options
author | Richard Jones <rjones@redhat.com> | 2009-04-30 13:35:36 +0100 |
---|---|---|
committer | Richard Jones <rjones@redhat.com> | 2009-04-30 13:35:36 +0100 |
commit | 6dff51fc7d8a33925f164bd66c2c26cd4b94b3df (patch) | |
tree | a3fdebfd9b270c9f205255da7c27949e22c7b9dd /src/generator.ml | |
parent | 668d27b56857230fb81c04d1663a5aca1b9e77b9 (diff) | |
download | libguestfs-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-x | src/generator.ml | 11 |
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 _ -> () |