diff options
author | Richard Jones <rjones@trick.home.annexia.org> | 2009-06-16 09:56:19 +0100 |
---|---|---|
committer | Richard Jones <rjones@trick.home.annexia.org> | 2009-06-16 09:56:19 +0100 |
commit | 28e2bceefeedbef82dcc24e60e8a22da0960354a (patch) | |
tree | 5b956a2a1005e7ec45b0c43211eb210fc5a35d1a | |
parent | 2b4e82d6ca502581bc63fd873e4b55aa93463f62 (diff) | |
download | libguestfs-28e2bceefeedbef82dcc24e60e8a22da0960354a.tar.gz libguestfs-28e2bceefeedbef82dcc24e60e8a22da0960354a.tar.xz libguestfs-28e2bceefeedbef82dcc24e60e8a22da0960354a.zip |
Fix build_supermin_appliance to return kernel / initrd names.
-rw-r--r-- | src/guestfs.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/guestfs.c b/src/guestfs.c index 8f06d3ba..20fafc12 100644 --- a/src/guestfs.c +++ b/src/guestfs.c @@ -1148,17 +1148,26 @@ build_supermin_appliance (guestfs_h *g, const char *path, char **kernel, char **initrd) { char cmd[4096]; - int r; + int r, len; + + len = strlen (g->tmpdir); + *kernel = safe_malloc (g, len + 8); + snprintf (*kernel, len+8, "%s/kernel", g->tmpdir); + *initrd = safe_malloc (g, len + 8); + snprintf (*initrd, len+8, "%s/initrd", g->tmpdir); snprintf (cmd, sizeof cmd, "PATH='%s':$PATH " - "guestfs-supermin-helper '%s' %s/kernel %s/initrd", + "guestfs-supermin-helper '%s' %s %s", path, - path, g->tmpdir, g->tmpdir); + path, *kernel, *initrd); r = system (cmd); if (r == -1 || WEXITSTATUS(r) != 0) { error (g, _("external command failed: %s"), cmd); + free (*kernel); + free (*initrd); + *kernel = *initrd = NULL; return -1; } |