[libvirt] [PATCH v2] qemu: Check for negative port values in network drive configuration

Martin Kletzander mkletzan at redhat.com
Fri Feb 20 17:09:12 UTC 2015


On Fri, Feb 20, 2015 at 12:18:04PM +0100, Erik Skultety wrote:
>We interpret port values as signed int (convert them from char *),
>so if anegative 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 | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
>diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
>index 743d6f0..6941b5a 100644
>--- a/src/qemu/qemu_command.c
>+++ b/src/qemu/qemu_command.c
>@@ -2951,10 +2951,10 @@ static int
> qemuNetworkDriveGetPort(int protocol,
>                         const char *port)
> {
>-    int ret = 0;
>-
>+    unsigned ret = 0;

Deleted whitespace,

>     if (port) {
>-        if (virStrToLong_i(port, NULL, 10, &ret) < 0) {
>+        if (virStrToLong_uip(port, NULL, 10, &ret) < 0 ||
>+            (int) ret < 0) {

this will work, but it is ugly, v1 was correct, so NACK for this one.

>             virReportError(VIR_ERR_INTERNAL_ERROR,
>                            _("failed to parse port number '%s'"),
>                            port);
>--
>1.9.3
>
>--
>libvir-list mailing list
>libvir-list at redhat.com
>https://www.redhat.com/mailman/listinfo/libvir-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20150220/bb1a4b60/attachment-0001.sig>


More information about the libvir-list mailing list