[PATCH] Fix crash when system has no ipv6 address [BZ #17125]
Siddhesh Poyarekar
siddhesh@redhat.com
Tue Jul 8 12:08:00 GMT 2014
Hi,
The test case bug-ga2 crashes when the system it is running on has no
ipv6 address configured. This is because we point the cache (that is
freed on exit) to a static variable if there is no ipv6 address, which
later results in freeing an invalid pointer.
Following patch fixes this crash.
Siddhesh
[BZ #17125]
* sysdeps/unix/sysv/linux/check_pf.c (make_request): Allocate
result using malloc.
diff --git a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_pf.c
index 1bc1def..063e15f 100644
--- a/sysdeps/unix/sysv/linux/check_pf.c
+++ b/sysdeps/unix/sysv/linux/check_pf.c
@@ -311,7 +311,8 @@ make_request (int fd, pid_t pid)
atomic_add (&noai6ai_cached.usecnt, 2);
noai6ai_cached.seen_ipv4 = seen_ipv4;
noai6ai_cached.seen_ipv6 = seen_ipv6;
- result = &noai6ai_cached;
+ result = malloc (sizeof (noai6ai_cached));
+ memcpy (result, &noai6ai_cached, sizeof (noai6ai_cached));
}
if (use_malloc)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20140708/6835d87d/attachment.sig>
More information about the Libc-alpha
mailing list