Add check for queues parameter to be non-zero, and for fd/fds parameters to be non-empty.
Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]> --- net/tap.c | 4 ++++ net/util.c | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/net/tap.c b/net/tap.c index e464f62b473..57ffb09885c 100644 --- a/net/tap.c +++ b/net/tap.c @@ -807,6 +807,10 @@ static int tap_parse_fds_and_queues(const NetdevTapOptions *tap, int **fds, error_setg(errp, "queues exceeds maximum %d", INT_MAX); return -1; } + if (tap->queues == 0) { + error_setg(errp, "queues must be greater than zero"); + return -1; + } queues = tap->queues; *fds = NULL; } else if (tap->fd || tap->fds) { diff --git a/net/util.c b/net/util.c index 1998a6554e0..8265f155484 100644 --- a/net/util.c +++ b/net/util.c @@ -94,6 +94,11 @@ int net_parse_fds(const char *fds_param, int **fds, int expected_nfds, return -1; } + if (nfds == 0) { + error_setg(errp, "no fds passed"); + return -1; + } + *fds = g_new(int, nfds); for (i = 0; i < nfds; i++) { -- 2.52.0
