From: Julian Seward Date: Mon, 24 Feb 2003 21:55:34 +0000 (+0000) Subject: o I fixed a small bug: the code in coregrind/vg_syscalls.c seems X-Git-Tag: svn/VALGRIND_1_9_4~9 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=575a8896ec1b3bc90ea1aefc5e328b2c7ffddb88;p=thirdparty%2Fvalgrind.git o I fixed a small bug: the code in coregrind/vg_syscalls.c seems to assume that all sockaddrs are non-NULL and non-zero in length. This isn't always true, and when I ran a program that used a NULL sockaddr through Valgrind it segfaulted. I believe that the change that I made fixes this bug in general, but I might be overlooking something. From kclark@CetaceanNetworks.com (Kevin D. Clark) git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1440 --- diff --git a/configure.in b/configure.in index 435b00dded..76753f2fc3 100644 --- a/configure.in +++ b/configure.in @@ -1,7 +1,7 @@ # Process this file with autoconf to produce a configure script. AC_INIT(coregrind/vg_clientmalloc.c) # give me a source file, any source file... AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(valgrind, 1.9.4) +AM_INIT_AUTOMAKE(valgrind, 1.9.4pre1) AM_MAINTAINER_MODE diff --git a/coregrind/vg_syscalls.c b/coregrind/vg_syscalls.c index a3ff26b5f9..b9c829df7f 100644 --- a/coregrind/vg_syscalls.c +++ b/coregrind/vg_syscalls.c @@ -292,8 +292,13 @@ void pre_mem_read_sockaddr ( ThreadState* tst, Char *description, struct sockaddr *sa, UInt salen ) { - Char *outmsg = VG_(arena_malloc) ( VG_AR_TRANSIENT, - strlen( description ) + 30 ); + Char *outmsg; + + /* NULL/zero-length sockaddrs are legal */ + if ( sa == NULL || salen == 0 ) return; + + outmsg = VG_(arena_malloc) ( VG_AR_TRANSIENT, + strlen( description ) + 30 ); VG_(sprintf) ( outmsg, description, ".sa_family" ); SYSCALL_TRACK( pre_mem_read, tst, outmsg,