qemu/net
Paolo Bonzini e73b4317b7 net: validate that ids are well formed
When a network or network device is created from the command line or HMP,
QemuOpts ensures that the id passes the id_wellformed check.  However,
QMP skips this:

   $ qemu-system-x86_64 -qmp stdio -S -nic user,id=123/456
   qemu-system-x86_64: -nic user,id=123/456: Parameter id expects an identifier
   Identifiers consist of letters, digits, -, ., _, starting with a letter.

   $ qemu-system-x86_64 -qmp stdio -S
   {"execute":"qmp_capabilities"}
   {"return": {}}
   {"execute":"netdev_add", "arguments": {"type": "user", "id": "123/456"}}
   {"return": {}}

After:

   $ qemu-system-x86_64 -qmp stdio -S
   {"execute":"qmp_capabilities"}
   {"return": {}}
   {"execute":"netdev_add", "arguments": {"type": "user", "id": "123/456"}}
   {"error": {"class": "GenericError", "desc": "Parameter "id" expects an identifier"}}

Validity checks should be performed always at the bottom of the call chain,
because QMP skips all the steps above.  At the same time we know that every
call chain should go through either QMP or (for legacy) through QemuOpts.
Because the id for -net and -nic is automatically generated and not
well-formed by design, just add the check to QMP.

Cc: Jason Wang <jasowang@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
2021-03-15 16:41:22 +08:00
..
can can_host: Use class properties 2020-12-15 10:02:07 -05:00
announce.c Remove superfluous timer_del() calls 2021-01-08 15:13:38 +00:00
checksum.c net: checksum: Introduce fine control over checksum type 2021-01-25 17:04:56 +08:00
clients.h vhost-vdpa: introduce vhost-vdpa net client 2020-07-07 07:59:51 -04:00
colo-compare.c Remove superfluous timer_del() calls 2021-01-08 15:13:38 +00:00
colo-compare.h colo-compare: use notifier to notify packets comparing result 2018-10-19 11:15:03 +08:00
colo.c colo-compare: fix missing compare_seq initialization 2020-11-11 16:52:23 +08:00
colo.h net/colo-compare.c: Fix deadlock in compare_chr_send 2020-06-18 21:05:52 +08:00
dump.c netfilter: Use class properties 2020-12-15 10:02:07 -05:00
eth.c net: remove an assert call in eth_get_gso_type 2020-11-11 16:52:23 +08:00
filter-buffer.c netfilter: Use class properties 2020-12-15 10:02:07 -05:00
filter-mirror.c netfilter: Use class properties 2020-12-15 10:02:07 -05:00
filter-replay.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
filter-rewriter.c net: checksum: Introduce fine control over checksum type 2021-01-25 17:04:56 +08:00
filter.c netfilter: Use class properties 2020-12-15 10:02:07 -05:00
hub.c hw/net: Make NetCanReceive() return a boolean 2020-03-31 21:14:35 +08:00
hub.h net: Remove deprecated [hub_id name] tuple of 'hostfwd_add' / 'hostfwd_remove' 2020-03-09 18:44:04 +00:00
l2tpv3.c net/l2tpv3: Remove redundant check in net_init_l2tpv3() 2020-11-11 16:53:01 +08:00
meson.build replay: do not build if TCG is not available 2020-10-22 11:53:54 -04:00
net.c net: validate that ids are well formed 2021-03-15 16:41:22 +08:00
netmap.c Include qemu/main-loop.h less 2019-08-16 13:31:52 +02:00
queue.c net: forbid the reentrant RX 2020-07-28 16:57:58 +08:00
slirp.c net/slirp.c: Fix spelling error in error message 2021-01-29 09:31:40 +01:00
socket.c monitor: Use getter/setter functions for cur_mon 2020-10-09 07:08:19 +02:00
tap_int.h net: detect errors from probing vnet hdr flag for TAP devices 2020-07-15 21:00:13 +08:00
tap-bsd.c net: detect errors from probing vnet hdr flag for TAP devices 2020-07-15 21:00:13 +08:00
tap-linux.c net: detect errors from probing vnet hdr flag for TAP devices 2020-07-15 21:00:13 +08:00
tap-linux.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
tap-solaris.c net: detect errors from probing vnet hdr flag for TAP devices 2020-07-15 21:00:13 +08:00
tap-stub.c net: detect errors from probing vnet hdr flag for TAP devices 2020-07-15 21:00:13 +08:00
tap-win32.c Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
tap.c net: Use correct default-path macro for downscript 2020-11-24 10:40:17 +08:00
trace-events net/colo: Match is-enabled probe to tracepoint 2020-09-09 17:16:34 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
util.c net: Clean up includes 2016-02-04 17:41:30 +00:00
util.h net: do not depend on slirp internals 2019-01-14 00:44:29 +01:00
vde.c net/vde: print error on vde_open() failure 2018-03-26 14:52:43 +08:00
vhost-user-stub.c vhost-net-user: add stubs for when no virtio-net device is present 2019-02-21 12:28:01 -05:00
vhost-user.c vhost-user: save features of multiqueues if chardev is closed 2020-09-29 03:06:12 -04:00
vhost-vdpa.c vhost-vdpa: Add qemu_close in vhost_vdpa_cleanup 2020-11-03 16:39:05 -05:00