tap: fix NULL dereference when passing invalid parameters to tap
authorJason Wang <jasowang@redhat.com>
Tue, 4 Jun 2013 05:18:17 +0000 (13:18 +0800)
committerStefan Hajnoczi <stefanha@redhat.com>
Fri, 7 Jun 2013 13:48:11 +0000 (15:48 +0200)
commitc87826a878be05208c3906eb9d5e1f37cff5e98e
tree6519afe70da0729db329fbc7c1b259dfa41987a5
parent3ffee3cd5fb29de2115bdcbde0a02f47ce69a24c
tap: fix NULL dereference when passing invalid parameters to tap

This patch forbid the following invalid parameters to tap:

1) fd and vhostfds were specified but vhostfd were not specified
2) vhostfds were specified but fds were not specified
3) fds and vhostfd were specified

For 1 and 2, net_init_tap_one() will still pass NULL as vhostfdname to
monitor_handle_fd_param(), which may crash the qemu.

Also remove the unnecessary has_fd check.

Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Stefan Hajnoczi <shajnocz@redhat.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: qemu-stable@nongnu.org
Signed-off-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
net/tap.c