]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
util: socket: Add missing localaddr and localport option for DGRAM socket
authorPeter Krempa <pkrempa@redhat.com>
Fri, 15 May 2015 09:31:43 +0000 (11:31 +0200)
committerMichael Tokarev <mjt@tls.msk.ru>
Wed, 3 Jun 2015 11:21:23 +0000 (14:21 +0300)
The 'socket_optslist' structure does not contain the 'localaddr' and
'localport' options that are parsed in case you are creating a
'connect' type UDP character device.

I've noticed it happening after commit f43e47dbf6de24db20ec9b588bb6cc762
made qemu abort() after seeing the invalid option.

A minimal reproducer for the case is:
$ qemu-system-x86_64 -chardev udp,id=charrng0,host=127.0.0.1,port=1234,localaddr=,localport=1234
qemu-system-x86_64: -chardev udp,id=charrng0,host=127.0.0.1,port=1234,localaddr=,localport=1234: Invalid parameter 'localaddr'
Aborted (core dumped)

Prior to the commit mentioned above the error would be printed but the
value for localaddr and localport was simply ignored. I did not go
through the code to find out when it was broken.

Add the two fields so that the options can again be parsed correctly and
qemu doesn't abort().

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1220252

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
util/qemu-sockets.c

index 22c8c4c5d566d251ed085005b180216f3d59fe01..f9ad34e40c3475a5cdff95f4120a5295137536f6 100644 (file)
@@ -44,6 +44,12 @@ QemuOptsList socket_optslist = {
         },{
             .name = "port",
             .type = QEMU_OPT_STRING,
+        },{
+            .name = "localaddr",
+            .type = QEMU_OPT_STRING,
+        },{
+            .name = "localport",
+            .type = QEMU_OPT_STRING,
         },{
             .name = "to",
             .type = QEMU_OPT_NUMBER,