qemu: Check for negative port values in network drive configuration

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 8464616526)
This commit is contained in:
Erik Skultety 2015-02-19 16:53:13 +01:00 committed by Cole Robinson
parent 8ff41608f1
commit b41d99b72e

View 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);