Page MenuHomeFreeBSD

D14802.id40627.diff
No OneTemporary

D14802.id40627.diff

Index: sys/netinet6/ip6_output.c
===================================================================
--- sys/netinet6/ip6_output.c
+++ sys/netinet6/ip6_output.c
@@ -2303,8 +2303,9 @@
#define GET_PKTOPT_VAR(field, lenexpr) do { \
if (pktopt && pktopt->field) { \
+ optdatalen = ulmin(lenexpr, sopt->sopt_valsize); \
INP_RUNLOCK(in6p); \
- optdata = malloc(sopt->sopt_valsize, M_TEMP, M_WAITOK); \
+ optdata = malloc(optdatalen, M_TEMP, M_WAITOK); \
malloc_optdata = true; \
INP_RLOCK(in6p); \
if (in6p->inp_flags & (INP_TIMEWAIT | INP_DROPPED)) { \
@@ -2313,14 +2314,11 @@
return (ECONNRESET); \
} \
pktopt = in6p->in6p_outputopts; \
- if (pktopt && pktopt->field) { \
- optdatalen = min(lenexpr, sopt->sopt_valsize); \
- bcopy(&pktopt->field, optdata, optdatalen); \
- } else { \
- free(optdata, M_TEMP); \
- optdata = NULL; \
- malloc_optdata = false; \
- } \
+ bcopy(&pktopt->field, optdata, optdatalen); \
+ } else { \
+ free(optdata, M_TEMP); \
+ optdata = NULL; \
+ malloc_optdata = false; \
} \
} while(0)

File Metadata

Mime Type
text/plain
Expires
Fri, Jun 12, 11:42 AM (19 h, 6 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33906605
Default Alt Text
D14802.id40627.diff (1 KB)

Event Timeline