DragonFlyBSD Kernel Audit
DF-0577 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/net/sl/if_sl.c b/sys/net/sl/if_sl.c
--- a/sys/net/sl/if_sl.c
+++ b/sys/net/sl/if_sl.c
@@ -395,7 +395,7 @@
 		break;
 
 	case SLIOCSKEEPAL:
-		sc->sc_keepalive = *(u_int *)data * hz;
+		sc->sc_keepalive = (*(u_int *)data > 10000 ? 10000 : *(u_int *)data) * hz;
 		if (sc->sc_keepalive) {
 			sc->sc_flags |= SC_KEEPALIVE;
 			callout_reset(&sc->sc_katimeout, sc->sc_keepalive,
@@ -413,7 +413,7 @@
 		break;
 
 	case SLIOCSOUTFILL:
-		sc->sc_outfill = *(u_int *)data * hz;
+		sc->sc_outfill = (*(u_int *)data > 10000 ? 10000 : *(u_int *)data) * hz;
 		if (sc->sc_outfill) {
 			sc->sc_flags |= SC_OUTWAIT;
 			callout_reset(&sc->sc_oftimeout, sc->sc_outfill,