diff options
author | Eduardo Habkost <ehabkost@redhat.com> | 2015-04-09 16:57:29 -0300 |
---|---|---|
committer | Andreas Färber <afaerber@suse.de> | 2015-06-19 10:29:14 +0200 |
commit | 1590d266d96b3f9b42443d6388dfc38f527ac2d8 (patch) | |
tree | e275782435e002cfcd90796a4da81a990e397c9a | |
parent | 8ffe756da0481233e1bd518b2b16489f51856292 (diff) | |
download | hqemu-1590d266d96b3f9b42443d6388dfc38f527ac2d8.zip hqemu-1590d266d96b3f9b42443d6388dfc38f527ac2d8.tar.gz |
qom: strdup() target property name on object_property_add_alias()
With this, object_property_add_alias() callers can safely free the
target property name, like what already happens with the 'name' argument
to all object_property_add*() functions.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
-rw-r--r-- | qom/object.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/qom/object.c b/qom/object.c index 96abd34..d142d15 100644 --- a/qom/object.c +++ b/qom/object.c @@ -1705,7 +1705,7 @@ void object_property_add_uint64_ptr(Object *obj, const char *name, typedef struct { Object *target_obj; - const char *target_name; + char *target_name; } AliasProperty; static void property_get_alias(Object *obj, struct Visitor *v, void *opaque, @@ -1736,6 +1736,7 @@ static void property_release_alias(Object *obj, const char *name, void *opaque) { AliasProperty *prop = opaque; + g_free(prop->target_name); g_free(prop); } @@ -1763,7 +1764,7 @@ void object_property_add_alias(Object *obj, const char *name, prop = g_malloc(sizeof(*prop)); prop->target_obj = target_obj; - prop->target_name = target_name; + prop->target_name = g_strdup(target_name); op = object_property_add(obj, name, prop_type, property_get_alias, |