From: Keir Fraser Date: Mon, 3 Mar 2008 11:08:10 +0000 (+0000) Subject: blktapctrl: Fix a potential device minor number leak. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14285 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=a226d0f1bb969dc746205733837087442d3238b1;p=xen.git blktapctrl: Fix a potential device minor number leak. Signed-off-by: Kouya Shimura --- 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);