Message ID | 20171114202616.GA10862@embeddedor.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Series | openvswitch: meter: fix NULL pointer dereference in ovs_meter_cmd_reply_start | expand |
From: "Gustavo A. R. Silva" <garsilva@embeddedor.com> Date: Tue, 14 Nov 2017 14:26:16 -0600 > It seems that the intention of the code is to null check the value > returned by function genlmsg_put. But the current code is null > checking the address of the pointer that holds the value returned > by genlmsg_put. > > Fix this by properly null checking the value returned by function > genlmsg_put in order to avoid a pontential null pointer dereference. > > Addresses-Coverity-ID: 1461561 ("Dereference before null check") > Addresses-Coverity-ID: 1461562 ("Dereference null return value") > Fixes: 96fbc13d7e77 ("openvswitch: Add meter infrastructure") > Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com> Applied.
diff --git a/net/openvswitch/meter.c b/net/openvswitch/meter.c index 2a5ba35..bc0b6fc 100644 --- a/net/openvswitch/meter.c +++ b/net/openvswitch/meter.c @@ -106,7 +106,7 @@ ovs_meter_cmd_reply_start(struct genl_info *info, u8 cmd, *ovs_reply_header = genlmsg_put(skb, info->snd_portid, info->snd_seq, &dp_meter_genl_family, 0, cmd); - if (!ovs_reply_header) { + if (!*ovs_reply_header) { nlmsg_free(skb); return ERR_PTR(-EMSGSIZE); }
It seems that the intention of the code is to null check the value returned by function genlmsg_put. But the current code is null checking the address of the pointer that holds the value returned by genlmsg_put. Fix this by properly null checking the value returned by function genlmsg_put in order to avoid a pontential null pointer dereference. Addresses-Coverity-ID: 1461561 ("Dereference before null check") Addresses-Coverity-ID: 1461562 ("Dereference null return value") Fixes: 96fbc13d7e77 ("openvswitch: Add meter infrastructure") Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com> --- net/openvswitch/meter.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)