* [Qemu-devel] [PATCH 0/2] fix two memory leaks in object_create()
@ 2014-08-15 10:13 Hu Tao
2014-08-15 10:13 ` [Qemu-devel] " Hu Tao
2014-08-15 10:14 ` [Qemu-devel] [PATCH 2/2] vl: call visit_end_struct() in the error path Hu Tao
0 siblings, 2 replies; 6+ messages in thread
From: Hu Tao @ 2014-08-15 10:13 UTC (permalink / raw)
To: qemu-devel
See each patch for the details.
Hu Tao (2):
vl: free err
vl: call visit_end_struct() in the error path
vl.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
--
1.9.3
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Qemu-trivial] [PATCH 1/2] vl: free err
2014-08-15 10:13 [Qemu-devel] [PATCH 0/2] fix two memory leaks in object_create() Hu Tao
@ 2014-08-15 10:13 ` Hu Tao
2014-08-15 10:14 ` [Qemu-devel] [PATCH 2/2] vl: call visit_end_struct() in the error path Hu Tao
1 sibling, 0 replies; 6+ messages in thread
From: Hu Tao @ 2014-08-15 10:13 UTC (permalink / raw)
To: qemu-devel; +Cc: qemu-trivial
err is not freed after use, thus causing memory leak. This patch fixes
it.
Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
Cc: qemu-trivial@nongnu.org
---
vl.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/vl.c b/vl.c
index a8029d5..6011aff 100644
--- a/vl.c
+++ b/vl.c
@@ -2917,6 +2917,7 @@ out:
g_free(dummy);
if (err) {
qerror_report_err(err);
+ error_free(err);
return -1;
}
return 0;
--
1.9.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Qemu-devel] [PATCH 1/2] vl: free err
@ 2014-08-15 10:13 ` Hu Tao
0 siblings, 0 replies; 6+ messages in thread
From: Hu Tao @ 2014-08-15 10:13 UTC (permalink / raw)
To: qemu-devel; +Cc: qemu-trivial
err is not freed after use, thus causing memory leak. This patch fixes
it.
Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
Cc: qemu-trivial@nongnu.org
---
vl.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/vl.c b/vl.c
index a8029d5..6011aff 100644
--- a/vl.c
+++ b/vl.c
@@ -2917,6 +2917,7 @@ out:
g_free(dummy);
if (err) {
qerror_report_err(err);
+ error_free(err);
return -1;
}
return 0;
--
1.9.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Qemu-devel] [PATCH 2/2] vl: call visit_end_struct() in the error path
2014-08-15 10:13 [Qemu-devel] [PATCH 0/2] fix two memory leaks in object_create() Hu Tao
2014-08-15 10:13 ` [Qemu-devel] " Hu Tao
@ 2014-08-15 10:14 ` Hu Tao
1 sibling, 0 replies; 6+ messages in thread
From: Hu Tao @ 2014-08-15 10:14 UTC (permalink / raw)
To: qemu-devel
In the error path we should also call visit_end_struct(), otherwise we
will have memory leak.
Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
---
vl.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/vl.c b/vl.c
index 6011aff..738ef45 100644
--- a/vl.c
+++ b/vl.c
@@ -2876,6 +2876,7 @@ static int object_create(QemuOpts *opts, void *opaque)
char *type = NULL;
char *id = NULL;
void *dummy = NULL;
+ bool del_id_on_error = false;
OptsVisitor *ov;
QDict *pdict;
@@ -2890,21 +2891,21 @@ static int object_create(QemuOpts *opts, void *opaque)
qdict_del(pdict, "qom-type");
visit_type_str(opts_get_visitor(ov), &type, "qom-type", &err);
if (err) {
- goto out;
+ goto out_struct;
}
qdict_del(pdict, "id");
visit_type_str(opts_get_visitor(ov), &id, "id", &err);
if (err) {
- goto out;
+ goto out_struct;
}
object_add(type, id, pdict, opts_get_visitor(ov), &err);
- if (err) {
- goto out;
- }
+ del_id_on_error = true;
+
+out_struct:
visit_end_struct(opts_get_visitor(ov), &err);
- if (err) {
+ if (err && del_id_on_error) {
qmp_object_del(id, NULL);
}
--
1.9.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Qemu-trivial] [PATCH 1/2] vl: free err
2014-08-15 10:13 ` [Qemu-devel] " Hu Tao
@ 2014-08-15 14:54 ` Michael Tokarev
-1 siblings, 0 replies; 6+ messages in thread
From: Michael Tokarev @ 2014-08-15 14:54 UTC (permalink / raw)
To: Hu Tao, qemu-devel; +Cc: qemu-trivial
Applied to trivial, thank you!
/mjt
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [Qemu-trivial] [PATCH 1/2] vl: free err
@ 2014-08-15 14:54 ` Michael Tokarev
0 siblings, 0 replies; 6+ messages in thread
From: Michael Tokarev @ 2014-08-15 14:54 UTC (permalink / raw)
To: Hu Tao, qemu-devel; +Cc: qemu-trivial
Applied to trivial, thank you!
/mjt
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-08-15 14:55 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-15 10:13 [Qemu-devel] [PATCH 0/2] fix two memory leaks in object_create() Hu Tao
2014-08-15 10:13 ` [Qemu-trivial] [PATCH 1/2] vl: free err Hu Tao
2014-08-15 10:13 ` [Qemu-devel] " Hu Tao
2014-08-15 14:54 ` [Qemu-trivial] " Michael Tokarev
2014-08-15 14:54 ` [Qemu-devel] " Michael Tokarev
2014-08-15 10:14 ` [Qemu-devel] [PATCH 2/2] vl: call visit_end_struct() in the error path Hu Tao
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.