aboutsummaryrefslogtreecommitdiffstats
path: root/tools/blktap
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2008-03-03 11:08:10 +0000
committerKeir Fraser <keir.fraser@citrix.com>2008-03-03 11:08:10 +0000
commita226d0f1bb969dc746205733837087442d3238b1 (patch)
tree6c070653ac8b9a326e67486fe15afe4b134763de /tools/blktap
parente5c75e5aa66e9548ebabc80e51e56553868b2ded (diff)
downloadxen-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.c8
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);