]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
o I fixed a small bug: the code in coregrind/vg_syscalls.c seems
authorJulian Seward <jseward@acm.org>
Mon, 24 Feb 2003 21:55:34 +0000 (21:55 +0000)
committerJulian Seward <jseward@acm.org>
Mon, 24 Feb 2003 21:55:34 +0000 (21:55 +0000)
     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

configure.in
coregrind/vg_syscalls.c

index 435b00dded9778de974796977be58bfa35ed5bf4..76753f2fc39762dd581502b5896afe0eb453aa09 100644 (file)
@@ -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
 
index a3ff26b5f98390bbf23c8a897f94d79ff47616ac..b9c829df7ff08e0bf7e1e828dec70e9619c3799c 100644 (file)
@@ -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,