svn commit: r350197 - stable/12/usr.sbin/bhyve

Vincenzo Maffione vmaffione at FreeBSD.org
Sun Jul 21 11:34:15 UTC 2019


Author: vmaffione
Date: Sun Jul 21 11:34:14 2019
New Revision: 350197
URL: https://svnweb.freebsd.org/changeset/base/350197

Log:
  MFC r349935
  
  usr.sbin/bhyve: free resources when erroring out of pci_vtnet_init()
  
  Submitted by:	seanc
  Coverity CID:   1402978
  Approved by:    vmaffione
  Reviewed by:    jhb
  Differential Revision:  https://reviews.freebsd.org/D20912

Modified:
  stable/12/usr.sbin/bhyve/pci_virtio_net.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/usr.sbin/bhyve/pci_virtio_net.c
==============================================================================
--- stable/12/usr.sbin/bhyve/pci_virtio_net.c	Sun Jul 21 11:28:40 2019	(r350196)
+++ stable/12/usr.sbin/bhyve/pci_virtio_net.c	Sun Jul 21 11:34:14 2019	(r350197)
@@ -411,6 +411,7 @@ pci_vtnet_init(struct vmctx *ctx, struct pci_devinst *
 			err = net_parsemac(vtopts, sc->vsc_config.mac);
 			if (err != 0) {
 				free(devname);
+				free(sc);
 				return (err);
 			}
 			mac_provided = 1;
@@ -419,8 +420,10 @@ pci_vtnet_init(struct vmctx *ctx, struct pci_devinst *
 		err = netbe_init(&sc->vsc_be, devname, pci_vtnet_rx_callback,
 		          sc);
 		free(devname);
-		if (err)
+		if (err) {
+			free(sc);
 			return (err);
+		}
 		sc->vsc_consts.vc_hv_caps |= netbe_get_cap(sc->vsc_be);
 	}
 
@@ -442,8 +445,10 @@ pci_vtnet_init(struct vmctx *ctx, struct pci_devinst *
 	sc->vsc_vs.vs_mtx = &sc->vsc_mtx;
 
 	/* use BAR 1 to map MSI-X table and PBA, if we're using MSI-X */
-	if (vi_intr_init(&sc->vsc_vs, 1, fbsdrun_virtio_msix()))
+	if (vi_intr_init(&sc->vsc_vs, 1, fbsdrun_virtio_msix())) {
+		free(sc);
 		return (1);
+	}
 
 	/* use BAR 0 to map config regs in IO space */
 	vi_set_io_bar(&sc->vsc_vs, 0);


More information about the svn-src-stable-12 mailing list