Message ID | 20170817170931.24545-4-phil@nwl.cc |
---|---|
State | Changes Requested, archived |
Delegated to: | stephen hemminger |
Headers | show |
On Thu, 17 Aug 2017 19:09:29 +0200 Phil Sutter <phil@nwl.cc> wrote: > @@ -546,6 +546,8 @@ 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) { Dont add blank line between computation and conditional. Having them together reads better.
diff --git a/tc/q_netem.c b/tc/q_netem.c index 0975ae111de97..7e3330512041a 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,8 @@ 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;
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 <phil@nwl.cc> --- tc/q_netem.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)