summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Veillard <veillard@redhat.com>2006-03-30 12:14:40 +0000
committerDaniel Veillard <veillard@redhat.com>2006-03-30 12:14:40 +0000
commitc9a8f27380f394389a0bfeabfd78f28cf13d0feb (patch)
tree07dcf4bcdca7e47da07e1b17d53b06ae6d03f787
parent* doc/*: rebuilt (diff)
downloadlibvirt-c9a8f27380f394389a0bfeabfd78f28cf13d0feb.tar.gz
libvirt-c9a8f27380f394389a0bfeabfd78f28cf13d0feb.tar.bz2
libvirt-c9a8f27380f394389a0bfeabfd78f28cf13d0feb.zip
* src/virsh.c: catching memory allocation error and existing, as
pointed by Jim Meyering Daniel
-rw-r--r--ChangeLog5
-rw-r--r--src/virsh.c25
2 files changed, 30 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 9bdaabefb..b9b39af02 100644
--- 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
diff --git a/src/virsh.c b/src/virsh.c
index 785f544d7..e10bf1c8a 100644
--- a/src/virsh.c
+++ b/src/virsh.c
@@ -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;
}