]> 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)
committerCole Robinson <crobinso@redhat.com>
Tue, 28 Apr 2015 15:06:41 +0000 (11:06 -0400)
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
(cherry picked from commit 84646165262de4fcdfca49e9e9198fa7b26edea6)

src/qemu/qemu_command.c

index 45ae7cf8c912f36092888d9b8b7979b09a70d733..8c222d733e72a30a74455b13f531880783d13e03 100644 (file)
@@ -2951,7 +2951,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);