qemu-e2k/net
Marc-André Lureau 67f3280c06 slirp: fix segv when init failed
Since commit f6c2e66ae8, slirp uses an exit notifier to call
slirp_smb_cleanup. However, if init() failed, the notifier isn't added,
and removing it will fail:

==18447== Invalid write of size 8
==18447==    at 0x7EF2B5: notifier_remove (notify.c:32)
==18447==    by 0x48E80C: qemu_remove_exit_notifier (vl.c:2661)
==18447==    by 0x6A2187: net_slirp_cleanup (slirp.c:134)
==18447==    by 0x69419D: qemu_cleanup_net_client (net.c:338)
==18447==    by 0x69445B: qemu_del_net_client (net.c:401)
==18447==    by 0x6A2B81: net_slirp_init (slirp.c:366)
==18447==    by 0x6A4241: net_init_slirp (slirp.c:865)
==18447==    by 0x695C6D: net_client_init1 (net.c:1051)
==18447==    by 0x695F6E: net_client_init (net.c:1108)
==18447==    by 0x696DBA: net_init_netdev (net.c:1498)
==18447==    by 0x7F1F99: qemu_opts_foreach (qemu-option.c:1116)
==18447==    by 0x696E60: net_init_clients (net.c:1516)
==18447==  Address 0x0 is not stack'd, malloc'd or (recently) free'd

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
2016-08-22 15:20:32 +08:00
..
checksum.c net: handle optional VLAN header in checksum computation. 2016-06-02 10:42:46 +08:00
clients.h net: use Netdev instead of NetClientOptions in client init 2016-07-19 13:21:08 +02:00
dump.c qapi: Change Netdev into a flat union 2016-07-19 20:18:02 +02:00
eth.c net: fix incorrect argument to iov_to_buf 2016-07-18 16:16:52 +08:00
filter-buffer.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
filter-mirror.c net/net: Add SocketReadState for reuse codes 2016-06-01 09:25:29 +08:00
filter.c qapi: Change Netdev into a flat union 2016-07-19 20:18:02 +02:00
hub.c qapi: Change Netdev into a flat union 2016-07-19 20:18:02 +02:00
hub.h
l2tpv3.c qapi: Change Netdev into a flat union 2016-07-19 20:18:02 +02:00
Makefile.objs net/filter-mirror:Add filter-mirror 2016-03-30 08:54:29 +08:00
net.c net/net: properly handle multiple packets in net_fill_rstate() 2016-08-18 12:20:57 +08:00
netmap.c qapi: Change Netdev into a flat union 2016-07-19 20:18:02 +02:00
queue.c net: Clean up includes 2016-02-04 17:41:30 +00:00
slirp.c slirp: fix segv when init failed 2016-08-22 15:20:32 +08:00
socket.c qapi: Change Netdev into a flat union 2016-07-19 20:18:02 +02:00
tap_int.h Clean up header guards that don't match their file name 2016-07-12 16:19:16 +02:00
tap-aix.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
tap-bsd.c util: move declarations out of qemu-common.h 2016-03-22 22:20:17 +01:00
tap-haiku.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
tap-linux.c util: move declarations out of qemu-common.h 2016-03-22 22:20:17 +01:00
tap-linux.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
tap-solaris.c util: move declarations out of qemu-common.h 2016-03-22 22:20:17 +01:00
tap-win32.c qapi: Change Netdev into a flat union 2016-07-19 20:18:02 +02:00
tap.c vhost-user: keep vhost_net after a disconnection 2016-07-29 00:33:48 +03:00
trace-events trace-events: fix first line comment in trace-events 2016-08-12 10:36:01 +01:00
util.c net: Clean up includes 2016-02-04 17:41:30 +00:00
util.h all: Clean up includes 2016-02-23 12:43:05 +00:00
vde.c qapi: Change Netdev into a flat union 2016-07-19 20:18:02 +02:00
vhost-user.c vhost-user: wait until backend init is completed 2016-07-29 00:33:49 +03:00