qemu/slirp
Jan Kiszka b248ede2ef slirp: Fix requeuing of batchq packets in if_start
In case we requeued a packet that was the head of a longer session
queue, we failed to restore this ordering. Also, we did not properly
deal with changes to Slirp::next_m.

Instead of a cumbersome roll back, this fix simply avoids any changes
until we know if the packet was actually sent. Both fixes crashes due
to inconsistent queues and simplifies the logic.

Thanks to Zhi Yong Wu who found the reason for these crashes.

CC: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
CC: Fabien Chouteau <chouteau@adacore.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
2012-02-27 14:54:49 +01:00
..
arp_table.c slirp: Fix types of IP address parameters 2011-08-05 12:51:11 +02:00
bootp.c Simple ARP table 2011-08-03 12:57:06 +02:00
bootp.h slirp: Factor out internal state structure 2009-06-29 08:52:49 -05:00
cksum.c slirp: Replace u_int8_t, u_int16_t, u_int32_t, u_int64_t by standard int types 2010-07-25 16:59:41 +02:00
COPYRIGHT Remove the advertising clause from the slirp license 2009-01-26 19:37:41 +00:00
debug.h slirp: Cleanup and basic reanimation of debug code 2009-06-29 08:52:46 -05:00
if.c slirp: Fix requeuing of batchq packets in if_start 2012-02-27 14:54:49 +01:00
if.h slirp: Clean up ifs_init 2012-02-27 14:54:49 +01:00
ip_icmp.c slirp: Prevent sending ICMP error replies to source-only addresses 2012-02-08 10:07:54 +01:00
ip_icmp.h slirp: Forward ICMP echo requests via unprivileged sockets 2011-07-23 10:19:50 -05:00
ip_input.c slirp: Fix unusual "comments" in unused code 2011-07-27 10:10:17 +01:00
ip_output.c slirp: Replace m_freem with m_free 2011-07-23 10:19:49 -05:00
ip.h Use new macro QEMU_PACKED for packed structures 2011-09-03 10:45:59 +00:00
libslirp.h main-loop: create main-loop.c 2011-10-21 18:14:30 +02:00
main.h Delayed IP packets 2011-08-03 12:57:11 +02:00
mbuf.c Delayed IP packets 2011-08-03 12:57:11 +02:00
mbuf.h slirp: Clean up ifs_init 2012-02-27 14:54:49 +01:00
misc.c slirp/misc: fix gcc __warn_memset_zero_len warnings 2012-02-24 13:24:42 +00:00
misc.h slirp: Replace u_int8_t, u_int16_t, u_int32_t, u_int64_t by standard int types 2010-07-25 16:59:41 +02:00
sbuf.c slirp: Drop dead code 2009-06-29 08:52:46 -05:00
sbuf.h Fix breakage by obsolete _P() for good 2009-07-01 19:11:17 +00:00
slirp_config.h slirp: Remove unused code for bad sprintf 2010-11-21 09:16:57 -06:00
slirp.c char: rename qemu_chr_write() -> qemu_chr_fe_write() 2011-08-22 10:17:15 -05:00
slirp.h Use new macro QEMU_PACKED for packed structures 2011-09-03 10:45:59 +00:00
socket.c Wrap recv to avoid warnings 2011-07-25 14:38:56 +00:00
socket.h slirp: Replace u_int8_t, u_int16_t, u_int32_t, u_int64_t by standard int types 2010-07-25 16:59:41 +02:00
tcp_input.c slirp: Fix use after release on tcp_input 2011-09-28 13:10:22 +02:00
tcp_output.c slirp: Replace u_int8_t, u_int16_t, u_int32_t, u_int64_t by standard int types 2010-07-25 16:59:41 +02:00
tcp_subr.c Remove blanks before \n in output strings 2011-09-16 08:25:56 -05:00
tcp_timer.c More NULL pointer fixes 2009-08-01 10:13:20 +00:00
tcp_timer.h Fix breakage by obsolete _P() for good 2009-07-01 19:11:17 +00:00
tcp_var.h slirp: Replace u_int8_t, u_int16_t, u_int32_t, u_int64_t by standard int types 2010-07-25 16:59:41 +02:00
tcp.h slirp: Fix bit field types in IP header structs 2011-08-14 23:34:44 -07:00
tcpip.h Remove the advertising clause from the slirp license 2009-01-26 19:37:41 +00:00
tftp.c Use glib memory allocation and free functions 2011-08-20 23:01:08 -05:00
tftp.h slirp: Remove some type casts caused by bad declaration of x.tp_buf 2011-02-25 15:58:59 +00:00
udp.c slirp: Replace m_freem with m_free 2011-07-23 10:19:49 -05:00
udp.h slirp: Replace u_int8_t, u_int16_t, u_int32_t, u_int64_t by standard int types 2010-07-25 16:59:41 +02:00