- pmacct-fix-overflow.patch: fixed bufferoverflow in sfacctd. - reenable _FORTIFY_SOURCE that showed that failure OBS-URL: https://build.opensuse.org/request/show/789664 OBS-URL: https://build.opensuse.org/package/show/server:monitoring/pmacct?expand=0&rev=97
30 lines
1.1 KiB
Diff
30 lines
1.1 KiB
Diff
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);
|
|
}
|
|
|