[sheepdog] [PATCH] bs_sheepdog.c: fix memory leak issues in sd_open()

Ryusuke Konishi konishi.ryusuke at lab.ntt.co.jp
Thu Oct 31 09:36:34 CET 2013


This fixes memory leak issues in sd_open function which were brought
by the patch titled "bs_sheepdog.c: support various VDI options in
--backing-store option" (commit:
f282f83c036e298f316ef64d1e51aff3f57b9eaf).

The current sd_open function doesn't free locally allocated string
"orig_filename" nor restores "filename" argument temporarily broken
for parsing VDI options when unknown protocol was specified or tcp
port number was malformed.

Signed-off-by: Ryusuke Konishi <konishi.ryusuke at lab.ntt.co.jp>
---
 usr/bs_sheepdog.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/usr/bs_sheepdog.c b/usr/bs_sheepdog.c
index 8bb5c80..7341708 100644
--- a/usr/bs_sheepdog.c
+++ b/usr/bs_sheepdog.c
@@ -962,7 +962,8 @@ static int sd_open(struct sheepdog_access_info *ai, char *filename, int flags)
 			} else {
 				eprintf("unknown protocol of sheepdog vdi:"\
 					" %s\n", result);
-				return -1;
+				ret = -1;
+				goto out;
 			}
 			break;
 		case EXPECT_PATH:
@@ -979,7 +980,8 @@ static int sd_open(struct sheepdog_access_info *ai, char *filename, int flags)
 				if (!isdigit(result[i])) {
 					eprintf("invalid tcp port number:"\
 						" %s\n", result);
-					return -1;
+					ret = -1;
+					goto out;
 				}
 			}
 
-- 
1.7.9.3




More information about the sheepdog mailing list