File pmacct-fix-overflow.patch of Package pmacct

Index: pmacct-1.7.4/src/sfacctd.c
===================================================================
--- pmacct-1.7.4.orig/src/sfacctd.c
+++ pmacct-1.7.4/src/sfacctd.c
@@ -2045,7 +2045,7 @@ void finalizeSample(SFSample *sample, st
 
 int SF_find_id(struct id_table *t, struct packet_ptrs *pptrs, pm_id_t *tag, pm_id_t *tag2)
 {
-  struct sockaddr sa_local;
+  struct sockaddr_storage sa_local;
   struct sockaddr_in *sa4 = (struct sockaddr_in *) &sa_local;
   struct sockaddr_in6 *sa6 = (struct sockaddr_in6 *) &sa_local;
   SFSample *sample = (SFSample *)pptrs->f_data; 
@@ -2086,13 +2086,13 @@ int SF_find_id(struct id_table *t, struc
   if (sample->agent_addr.type == SFLADDRESSTYPE_IP_V4) {
     begin = 0;
     end = t->ipv4_num;
-    sa_local.sa_family = AF_INET;
+    sa_local.ss_family = AF_INET;
     sa4->sin_addr.s_addr = sample->agent_addr.address.ip_v4.s_addr;
   }
   else if (sample->agent_addr.type == SFLADDRESSTYPE_IP_V6) {
     begin = t->num-t->ipv6_num;
     end = t->num;
-    sa_local.sa_family = AF_INET6;
+    sa_local.ss_family = AF_INET6;
     memcpy(sa6->sin6_addr.s6_addr, sample->agent_addr.address.ip_v6.s6_addr, 16);
   }
 
openSUSE Build Service is sponsored by