diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2008-03-03 11:08:10 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2008-03-03 11:08:10 +0000 |
commit | a226d0f1bb969dc746205733837087442d3238b1 (patch) | |
tree | 6c070653ac8b9a326e67486fe15afe4b134763de /tools/blktap | |
parent | e5c75e5aa66e9548ebabc80e51e56553868b2ded (diff) | |
download | xen-a226d0f1bb969dc746205733837087442d3238b1.tar.gz xen-a226d0f1bb969dc746205733837087442d3238b1.tar.bz2 xen-a226d0f1bb969dc746205733837087442d3238b1.zip |
blktapctrl: Fix a potential device minor number leak.
Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com>
Diffstat (limited to 'tools/blktap')
-rw-r--r-- | tools/blktap/drivers/blktapctrl.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/tools/blktap/drivers/blktapctrl.c b/tools/blktap/drivers/blktapctrl.c index abdb886e57..8cbf185f03 100644 --- a/tools/blktap/drivers/blktapctrl.c +++ b/tools/blktap/drivers/blktapctrl.c @@ -518,7 +518,7 @@ int blktapctrl_new_blkif(blkif_t *blkif) if (test_path(blk->params, &ptr, &type, &exist) != 0) { DPRINTF("Error in blktap device string(%s).\n", blk->params); - return -1; + goto fail; } blkif->drivertype = type; blkif->cookie = next_cookie++; @@ -527,11 +527,11 @@ int blktapctrl_new_blkif(blkif_t *blkif) DPRINTF("Process does not exist:\n"); if (asprintf(&rdctldev, "%s/tapctrlread%d", BLKTAP_CTRL_DIR, minor) == -1) - return -1; + goto fail; if (asprintf(&wrctldev, "%s/tapctrlwrite%d", BLKTAP_CTRL_DIR, minor) == -1) { free(rdctldev); - return -1; + goto fail; } blkif->fds[READ] = open_ctrl_socket(rdctldev); blkif->fds[WRITE] = open_ctrl_socket(wrctldev); @@ -543,7 +543,7 @@ int blktapctrl_new_blkif(blkif_t *blkif) DPRINTF("Launching process, CMDLINE [tapdisk %s %s]\n",wrctldev, rdctldev); if (launch_tapdisk(wrctldev, rdctldev) == -1) { DPRINTF("Unable to fork, cmdline: [tapdisk %s %s]\n",wrctldev, rdctldev); - return -1; + goto fail; } free(rdctldev); |