NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: bin/42923: pppd(8) catches SIGSEGV after IPv6CP link is up
Simpler patch is provided:
Index: src/usr.sbin/pppd/pppd/sys-bsd.c
===================================================================
RCS file: /cvsroot/src/usr.sbin/pppd/pppd/sys-bsd.c,v
retrieving revision 1.62
diff -u -r1.62 sys-bsd.c
--- src/usr.sbin/pppd/pppd/sys-bsd.c 10 Mar 2010 13:45:39 -0000 1.62
+++ src/usr.sbin/pppd/pppd/sys-bsd.c 19 Feb 2011 21:36:45 -0000
@@ -793,7 +793,7 @@
addreq6.ifra_prefixmask.sin6_len = sizeof(struct sockaddr_in6);
memset(&addreq6.ifra_prefixmask.sin6_addr, 0xff,
sizeof(addreq6.ifra_prefixmask.sin6_addr) - sizeof(our_eui64));
- memset(&addreq6.ifra_prefixmask.sin6_addr +
+ memset((char *)&addreq6.ifra_prefixmask.sin6_addr +
sizeof(addreq6.ifra_prefixmask.sin6_addr) - sizeof(our_eui64), 0x00,
sizeof(our_eui64));
The pointer passed to memset() should be advanced 8 bytes,
but the original code advances sizeof(struct in6_addr) * 8 bytes.
This may cause stack breakage.
--
Takahiro HAYASHI
Home |
Main Index |
Thread Index |
Old Index