Skip to contentSkip to conversation

vhost_net: add a missing error return

PATCH In review Dan Carpenter 3 participants 4 messages Sep 20, 2018 – Sep 21, 2018

Subsystems (6)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 vhost_net: add a missing error return

We accidentally left out this error return so it leads to some use after free bugs later on.

Fixes 0a0be13b8fe2 ("vhost_net: batch submitting XDP buffers to underlayer sockets")
drivers/vhost/net.c +1 -0
index dd4e0a301635..1bff6bc8161a 100644
@@ -1244,6 +1244,7 @@ static int vhost_net_open(struct inode *inode, struct file *f)
 		kfree(vqs);
 		kvfree(n);
 		kfree(queue);
+		return -ENOMEM;
 	}
 	n->vqs[VHOST_NET_VQ_TX].xdp = xdp;
 
maintainer Acked-by on v1 1/1
#1 lore raw
Quoted 5 lines · Dan Carpenter

We accidentally left out this error return so it leads to some use after free bugs later on.

Fixes 0a0be13b8fe2 ("vhost_net: batch submitting XDP buffers to underlayer sockets")

Ouch.

Quoted 13 lines
drivers/vhost/net.c +1 -0
index dd4e0a301635..1bff6bc8161a 100644
@@ -1244,6 +1244,7 @@ static int vhost_net_open(struct inode *inode, struct file *f)
 		kfree(vqs);
 		kvfree(n);
 		kfree(queue);
+		return -ENOMEM;
 	}
 	n->vqs[VHOST_NET_VQ_TX].xdp = xdp;
 
maintainer Acked-by on v1 1/1
#2 lore raw
In reply to Dan Carpenter
Quoted 5 lines · Dan Carpenter

We accidentally left out this error return so it leads to some use after free bugs later on.

Fixes 0a0be13b8fe2 ("vhost_net: batch submitting XDP buffers to underlayer sockets")

Ouch.

Quoted 13 lines
drivers/vhost/net.c +1 -0
index dd4e0a301635..1bff6bc8161a 100644
@@ -1244,6 +1244,7 @@ static int vhost_net_open(struct inode *inode, struct file *f)
 		kfree(vqs);
 		kvfree(n);
 		kfree(queue);
+		return -ENOMEM;
 	}
 	n->vqs[VHOST_NET_VQ_TX].xdp = xdp;
 
Acked-by on v1 1/1
#3 lore raw
In reply to Dan Carpenter
Quoted 11 lines · Dan Carpenter

We accidentally left out this error return so it leads to some use after free bugs later on.

Fixes 0a0be13b8fe2 ("vhost_net: batch submitting XDP buffers to underlayer sockets")
drivers/vhost/net.c +0 -0
index dd4e0a301635..1bff6bc8161a 100644

drivers/vhost/net.c static int vhost_net_open(struct inode *inode, struct file *f) · line 1250

Quoted 7 lines
drivers/vhost/net.c +1 -0
@@ -1244,6 +1244,7 @@ static int vhost_net_open(struct inode *inode, struct file *f)
  		kfree(vqs);
  		kvfree(n);
  		kfree(queue);
+		return -ENOMEM;
  	}
  	n->vqs[VHOST_NET_VQ_TX].xdp = xdp;
 

Thanks!