[dpdk-dev] net/virtio: fix null pointer dereference
Commit Message
There is a logic bug in this code, that could lead to null pointer
dereference when cvq is NULL. Fix this problem by changing logic
_and_ to logic _or_.
>> CID 127480: Null pointer dereferences (FORWARD_NULL)
>> Dereferencing null pointer "cvq".
if (!cvq && !cvq->vq) {
...
}
Coverity issue: 127480
Fixes: 01ad44fd374f ("net/virtio: split Rx/Tx queue")
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
---
drivers/net/virtio/virtio_ethdev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
On Tue, Jul 05, 2016 at 11:42:59AM +0000, Jianfeng Tan wrote:
> There is a logic bug in this code, that could lead to null pointer
> dereference when cvq is NULL. Fix this problem by changing logic
> _and_ to logic _or_.
>
> >> CID 127480: Null pointer dereferences (FORWARD_NULL)
> >> Dereferencing null pointer "cvq".
> if (!cvq && !cvq->vq) {
> ...
> }
>
> Coverity issue: 127480
>
> Fixes: 01ad44fd374f ("net/virtio: split Rx/Tx queue")
>
> Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Applied to dpdk-next-virtio.
Thanks.
--yliu
@@ -166,7 +166,7 @@ virtio_send_command(struct virtnet_ctl *cvq, struct virtio_pmd_ctrl *ctrl,
ctrl->status = status;
- if (!cvq && !cvq->vq) {
+ if (!cvq || !cvq->vq) {
PMD_INIT_LOG(ERR, "Control queue is not supported.");
return -1;
}