On 12/03/2013 06:26 AM, BenoƮt Canet wrote: > Signed-off-by: Benoit Canet > --- > block.c | 42 +++++++++++++++++++++++++++++++++++++----- > 1 file changed, 37 insertions(+), 5 deletions(-) > > @@ -880,7 +881,14 @@ int bdrv_file_open(BlockDriverState **pbs, const char *filename, > options = qdict_new(); > } > > - bs = bdrv_new("", ""); > + node_name = qdict_get_try_str(options, "node-name"); > + if (node_name && bdrv_find_node(node_name)) { > + error_setg(errp, "Duplicate node name"); > + return -EINVAL; This leaks options on failure. > @@ -1053,6 +1070,21 @@ int bdrv_open(BlockDriverState *bs, const char *filename, QDict *options, > options = qdict_new(); > } > > + node_name = qdict_get_try_str(options, "node-name"); > + if (node_name && bdrv_find_node(node_name)) { > + error_setg(errp, "Duplicate node name"); > + return -EINVAL; So does this. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org