Hi;

runtime/net.c around line 720 has:

                        memcpy(&(SIN(allowIP.addr.NetAddr)->sin_addr.s_addr),
                            &(SIN6(res->ai_addr)->sin6_addr.s6_addr32[3]),
                            sizeof (struct sockaddr_in));

This is wrong because &(SIN(allowIP.addr.NetAddr)->sin_addr.s_addr is
type of struct in_addr, gcc 4.6 correctly warns that this will
overflow. Attached is a patch that will fix this problem.

Regards,
ismail
--- runtime/net.c	2011-03-22 12:27:49.000000000 +0100
+++ runtime/net.c	2011-04-29 13:30:47.249997266 +0200
@@ -721,7 +721,7 @@
 						SIN(allowIP.addr.NetAddr)->sin_port   = 0;
 						memcpy(&(SIN(allowIP.addr.NetAddr)->sin_addr.s_addr),
 							&(SIN6(res->ai_addr)->sin6_addr.s6_addr32[3]),
-							sizeof (struct sockaddr_in));
+							sizeof (struct in_addr));
 
 						if((iRet = AddAllowedSenderEntry(ppRoot, ppLast, &allowIP,
 								iSignificantBits))
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com

Reply via email to