]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Check for negative port values in network drive configuration
authorErik Skultety <eskultet@redhat.com>
Thu, 19 Feb 2015 15:53:13 +0000 (16:53 +0100)
committerErik Skultety <eskultet@redhat.com>
Mon, 16 Mar 2015 08:46:43 +0000 (09:46 +0100)
We interpret port values as signed int (convert them from char *),
so if a negative value is provided in network disk's configuration,
we accept it as valid, however there's an 'unknown cause' error raised later.
This error is only accidental because we return the port value in the return code.
This patch adds just a minor tweak to the already existing check so we
reject negative values the same way as we reject non-numerical strings.

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

src/qemu/qemu_command.c

index 5303de5eb89a3529c4709a183573cc52c08719c9..3f0a3065bb80ff22f7c1a331f64fe4ad6db0e745 100644 (file)
@@ -3003,7 +3003,7 @@ qemuNetworkDriveGetPort(int protocol,
     int ret = 0;
 
     if (port) {
-        if (virStrToLong_i(port, NULL, 10, &ret) < 0) {
+        if (virStrToLong_i(port, NULL, 10, &ret) < 0 || ret < 0) {
             virReportError(VIR_ERR_INTERNAL_ERROR,
                            _("failed to parse port number '%s'"),
                            port);