DragonFlyBSD Kernel Audit
DF-1671 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/virtual/vkernel/net/if_vke.c b/sys/dev/virtual/vkernel/net/if_vke.c
--- a/sys/dev/virtual/vkernel/net/if_vke.c
+++ b/sys/dev/virtual/vkernel/net/if_vke.c
@@ -834,9 +834,11 @@
 		sc->sc_ringsize = LOW_POW_2(nmbufs);
 		if (sc->sc_ringsize > VKE_DEFAULT_RINGSIZE)
 			sc->sc_ringsize = VKE_DEFAULT_RINGSIZE;
-	} else if (vke_max_ringsize >= VKE_CHUNK) {	/* Tunable specified */
-		sc->sc_ringsize = LOW_POW_2(vke_max_ringsize);
-	} else {
+	} else if (vke_max_ringsize >= VKE_CHUNK) {	/* Tunable specified */
+		if (vke_max_ringsize <= 0)
+			vke_max_ringsize = VKE_CHUNK;
+		sc->sc_ringsize = LOW_POW_2(vke_max_ringsize);
+	} else {
 		sc->sc_ringsize = LOW_POW_2(VKE_CHUNK);
 	}