On 1/30/08, Scott Pakin <[EMAIL PROTECTED]> wrote: > Zhang, Xiantao wrote: > > Scott Pakin wrote: > >> The attached patch corrects a bug in qemu/slirp/tcp_var.h that defines > >> the seg_next field in struct tcpcb to be 32 bits wide regardless of > >> 32/64-bitness. seg_next is assigned a pointer value in > >> qemu/slirp/tcp_subr.c, then cast back to a pointer in > >> qemu/slirp/tcp_input.c and dereferenced. That produces a SIGSEGV on > >> my system. > > > > > > I still hit it on IA64 platform with your patch, once configured with > > slirp. > > Okay, here's a more thorough patch that fixes *all* of the "cast from/to > pointer to/from integer of a different size" mistakes that gcc warns > about. Does it also solve the SIGSEGV problem on IA64?
The SLIRP code is much, much more subtle than that. Please see this thread: http://lists.gnu.org/archive/html/qemu-devel/2007-10/msg00542.html