diff --git a/ChangeLog b/ChangeLog index 1bc0deab..49a543cd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-01-01 Andreas Schwab + + * net.c (sys_accept): Properly decode third argument as pointer to + int. + 2008-12-30 Denys Vlasenko Experimental support for -D option. diff --git a/net.c b/net.c index b2942307..be889697 100644 --- a/net.c +++ b/net.c @@ -1315,13 +1315,15 @@ struct tcb *tcp; } else if (!tcp->u_arg[2]) tprintf("%#lx, NULL", tcp->u_arg[1]); else { - if (tcp->u_arg[1] == 0 || syserror(tcp)) { + int len; + if (tcp->u_arg[1] == 0 || syserror(tcp) + || umove (tcp, tcp->u_arg[2], &len) < 0) { tprintf("%#lx", tcp->u_arg[1]); } else { - printsock(tcp, tcp->u_arg[1], tcp->u_arg[2]); + printsock(tcp, tcp->u_arg[1], len); } tprintf(", "); - printnum(tcp, tcp->u_arg[2], "%lu"); + printnum_int(tcp, tcp->u_arg[2], "%u"); } return 0; }