]> xenbits.xensource.com Git - libvirt.git/commitdiff
* src/virsh.c: catching memory allocation error and existing, as
authorDaniel Veillard <veillard@redhat.com>
Thu, 30 Mar 2006 12:14:40 +0000 (12:14 +0000)
committerDaniel Veillard <veillard@redhat.com>
Thu, 30 Mar 2006 12:14:40 +0000 (12:14 +0000)
  pointed by Jim Meyering
Daniel

ChangeLog
src/virsh.c

index 9bdaabefb06518e466ee4aa0430fcc9850defb8d..b9b39af02460e7c4a47384698c4ae6636f36a447 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Mar 30 12:15:46 EST 2006 Daniel Veillard <veillard@redhat.com>
+
+       * src/virsh.c: catching memory allocation error and existing, as
+         pointed by Jim Meyering
+
 Wed Mar 29 16:36:24 CEST 2006 Daniel Veillard <veillard@redhat.com>
 
        * doc/*: rebuilt
index 785f544d7ace6ddfe92ca9580fd28aec49474f52..e10bf1c8ad974295e7d3fb88b7d7f2548205d253 100644 (file)
@@ -311,6 +311,11 @@ cmdList(vshControl * ctl, vshCmd * cmd ATTRIBUTE_UNUSED)
         return FALSE;
     }
     ids = malloc(sizeof(int) * maxid);
+    if (ids == NULL) {
+        fprintf(stderr, "Failed to allocate %d bytes\n", 
+                (int) sizeof(int) * maxid);
+        exit(1);
+    }
     virConnectListDomains(ctl->conn, &ids[0], maxid);
 
     vshPrint(ctl, VSH_HEADER, "%3s %-20s %s\n", "Id", "Name", "State");
@@ -1284,6 +1289,10 @@ vshCommandGetToken(vshControl * ctl, char *str, char **end, char **res)
         return VSH_TK_END;
 
     *res = malloc(sz + 1);
+    if (*res == NULL) {
+        fprintf(stderr, "Failed to allocate %d bytes\n", sz + 1);
+        exit(1);
+    }
     memcpy(*res, tkstr, sz);
     *(*res + sz) = '\0';
 
@@ -1379,6 +1388,11 @@ vshCommandParse(vshControl * ctl, char *cmdstr)
             if (opt) {
                 /* save option */
                 vshCmdOpt *arg = malloc(sizeof(vshCmdOpt));
+                if (arg == NULL) {
+                    fprintf(stderr, "Failed to allocate %d bytes\n", 
+                            (int) sizeof(vshCmdOpt));
+                    exit(1);
+                }
 
                 arg->def = opt;
                 arg->data = tkdata;
@@ -1405,6 +1419,12 @@ vshCommandParse(vshControl * ctl, char *cmdstr)
         if (cmd) {
             vshCmd *c = malloc(sizeof(vshCmd));
 
+            if (c == NULL) {
+                fprintf(stderr, "Failed to allocate %d bytes\n", 
+                        (int) sizeof(vshCmd));
+                exit(1);
+            }
+
             c->opts = first;
             c->def = cmd;
             c->next = NULL;
@@ -1646,6 +1666,11 @@ vshReadlineOptionsGenerator(const char *text, int state)
                 continue;
         }
         res = malloc(strlen(name) + 3);
+        if (res == NULL) {
+            fprintf(stderr, "Failed to allocate %d bytes\n", 
+                    (int) strlen(name) + 3);
+            exit(1);
+        }
         sprintf(res, "--%s", name);
         return res;
     }