diff --git a/contrib/libvhost-user/libvhost-user.c b/contrib/libvhost-user/libvhost-user.c index cb5f5770e4c6ba73df06ea8c7d72794bde1ca796..f767cccc50fe09318f6294a7042c49fc78368694 100644 --- a/contrib/libvhost-user/libvhost-user.c +++ b/contrib/libvhost-user/libvhost-user.c @@ -2098,7 +2098,8 @@ virtqueue_alloc_element(size_t sz, size_t out_sg_end = out_sg_ofs + out_num * sizeof(elem->out_sg[0]); assert(sz >= sizeof(VuVirtqElement)); - elem = malloc(out_sg_end); + if ( (elem = malloc(out_sg_end)) == NULL) + return NULL; elem->out_num = out_num; elem->in_num = in_num; elem->in_sg = (void *)elem + in_sg_ofs; @@ -2177,6 +2178,8 @@ vu_queue_map_desc(VuDev *dev, VuVirtq *vq, unsigned int idx, size_t sz) /* Now copy what we have collected and mapped */ elem = virtqueue_alloc_element(sz, out_num, in_num); + if (elem == NULL) + return NULL; elem->index = idx; for (i = 0; i < out_num; i++) { elem->out_sg[i] = iov[i];