From: Phil Sutter Date: Thu, 24 Aug 2017 09:46:32 +0000 (+0200) Subject: tc/q_netem: Don't dereference possibly NULL pointer X-Git-Tag: v4.13.0~34 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a754de3ccd937500940c6fcd0ad043855f56862d;p=thirdparty%2Fiproute2.git tc/q_netem: Don't dereference possibly NULL pointer Assuming 'opt' might be NULL, move the call to RTA_PAYLOAD to after the check since it dereferences its parameter. Signed-off-by: Phil Sutter --- diff --git a/tc/q_netem.c b/tc/q_netem.c index 0975ae111..5a9e74741 100644 --- a/tc/q_netem.c +++ b/tc/q_netem.c @@ -538,7 +538,7 @@ static int netem_print_opt(struct qdisc_util *qu, FILE *f, struct rtattr *opt) int *ecn = NULL; struct tc_netem_qopt qopt; const struct tc_netem_rate *rate = NULL; - int len = RTA_PAYLOAD(opt) - sizeof(qopt); + int len; __u64 rate64 = 0; SPRINT_BUF(b1); @@ -546,6 +546,7 @@ static int netem_print_opt(struct qdisc_util *qu, FILE *f, struct rtattr *opt) if (opt == NULL) return 0; + len = RTA_PAYLOAD(opt) - sizeof(qopt); if (len < 0) { fprintf(stderr, "options size error\n"); return -1;