summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernard Iremonger <bernard.iremonger@intel.com>2015-07-15 14:51:01 +0100
committerThomas Monjalon <thomas.monjalon@6wind.com>2015-07-19 22:24:42 +0200
commit2f7fdb9d52f2134aec9c6ab96f11be79f326d8d3 (patch)
tree1a05153d7396fc42ccebe82a4fd045782d508756
parentabf4c84b25d114a32c7d2dfc77414964805a4ca5 (diff)
downloaddpdk-2f7fdb9d52f2134aec9c6ab96f11be79f326d8d3.zip
dpdk-2f7fdb9d52f2134aec9c6ab96f11be79f326d8d3.tar.gz
dpdk-2f7fdb9d52f2134aec9c6ab96f11be79f326d8d3.tar.xz
virtio: check virtqueue parameter when detaching
If vq is NULL, there is a segmentation fault. Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> Acked-by: Changchun Ouyang <changchun.ouyang@intel.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
-rw-r--r--drivers/net/virtio/virtqueue.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/net/virtio/virtqueue.c b/drivers/net/virtio/virtqueue.c
index 8a3005f..7f60e3e 100644
--- a/drivers/net/virtio/virtqueue.c
+++ b/drivers/net/virtio/virtqueue.c
@@ -1,7 +1,7 @@
/*-
* BSD LICENSE
*
- * Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
+ * Copyright(c) 2010-2015 Intel Corporation. All rights reserved.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -60,11 +60,13 @@ virtqueue_detatch_unused(struct virtqueue *vq)
struct rte_mbuf *cookie;
int idx;
- for (idx = 0; idx < vq->vq_nentries; idx++) {
- if ((cookie = vq->vq_descx[idx].cookie) != NULL) {
- vq->vq_descx[idx].cookie = NULL;
- return cookie;
+ if (vq != NULL)
+ for (idx = 0; idx < vq->vq_nentries; idx++) {
+ cookie = vq->vq_descx[idx].cookie;
+ if (cookie != NULL) {
+ vq->vq_descx[idx].cookie = NULL;
+ return cookie;
+ }
}
- }
return NULL;
}