[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] qemu-io: Fix memory leak
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [PATCH] qemu-io: Fix memory leak |
Date: |
Wed, 8 Jul 2009 14:21:35 +0200 |
qemu-io leaks the request buffer whenever the read or write function isn't
executed completely down the "normal" code path.
Signed-off-by: Kevin Wolf <address@hidden>
---
qemu-io.c | 10 ++++++----
1 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/qemu-io.c b/qemu-io.c
index a8d55fe..98ebb65 100644
--- a/qemu-io.c
+++ b/qemu-io.c
@@ -334,7 +334,7 @@ read_f(int argc, char **argv)
if (cnt < 0) {
printf("read failed: %s\n", strerror(-cnt));
- return 0;
+ goto out;
}
if (Pflag) {
@@ -349,7 +349,7 @@ read_f(int argc, char **argv)
}
if (qflag)
- return 0;
+ goto out;
if (vflag)
dump_buffer(buf, offset, count);
@@ -358,6 +358,7 @@ read_f(int argc, char **argv)
t2 = tsub(t2, t1);
print_report("read", &t2, offset, count, total, cnt, Cflag);
+out:
qemu_io_free(buf);
return 0;
@@ -632,16 +633,17 @@ write_f(int argc, char **argv)
if (cnt < 0) {
printf("write failed: %s\n", strerror(-cnt));
- return 0;
+ goto out;
}
if (qflag)
- return 0;
+ goto out;
/* Finally, report back -- -C gives a parsable format */
t2 = tsub(t2, t1);
print_report("wrote", &t2, offset, count, total, cnt, Cflag);
+out:
qemu_io_free(buf);
return 0;
--
1.6.0.6
- [Qemu-devel] [PATCH] qemu-io: Fix memory leak,
Kevin Wolf <=