diff options
Diffstat (limited to 'pimd')
| -rw-r--r-- | pimd/mtracebis.c | 4 | ||||
| -rw-r--r-- | pimd/pim_oil.c | 1 |
2 files changed, 4 insertions, 1 deletions
diff --git a/pimd/mtracebis.c b/pimd/mtracebis.c index a073fa70be..731fdb1beb 100644 --- a/pimd/mtracebis.c +++ b/pimd/mtracebis.c @@ -296,6 +296,10 @@ static int recv_response(int fd, int *hops, struct igmp_mtrace *mtracer) mtrace_len = ntohs(ip->ip_len) - ip->ip_hl * 4; + if ((char *)mtrace + mtrace_len + > (char *)mtrace_buf + IP_AND_MTRACE_BUF_LEN) + return -1; + if (mtrace_len < (int)MTRACE_HDR_SIZE) return -1; diff --git a/pimd/pim_oil.c b/pimd/pim_oil.c index fd3c04e8ca..d49484f869 100644 --- a/pimd/pim_oil.c +++ b/pimd/pim_oil.c @@ -40,7 +40,6 @@ char *pim_channel_oil_dump(struct channel_oil *c_oil, char *buf, size_t size) struct prefix_sg sg; int i; - memset(buf, 0, size); sg.src = c_oil->oil.mfcc_origin; sg.grp = c_oil->oil.mfcc_mcastgrp; sprintf(buf, "%s IIF: %d, OIFS: ", pim_str_sg_dump(&sg), |
