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
# 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
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,