From ea2e01315125ea5ae8003375e307ec9fab15120a Mon Sep 17 00:00:00 2001 From: Peter Avalos Date: Thu, 29 Nov 2007 03:10:24 +0000 Subject: [PATCH] Protect against dividing by zero. Obtained-from: FreeBSD --- sys/bus/cam/scsi/scsi_all.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sys/bus/cam/scsi/scsi_all.c b/sys/bus/cam/scsi/scsi_all.c index 607193df33..d0d727be5e 100644 --- a/sys/bus/cam/scsi/scsi_all.c +++ b/sys/bus/cam/scsi/scsi_all.c @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * $FreeBSD: src/sys/cam/scsi/scsi_all.c,v 1.14.2.11 2003/10/30 15:06:35 thomas Exp $ - * $DragonFly: src/sys/bus/cam/scsi/scsi_all.c,v 1.24 2007/11/28 21:45:02 pavalos Exp $ + * $DragonFly: src/sys/bus/cam/scsi/scsi_all.c,v 1.25 2007/11/29 03:10:24 pavalos Exp $ */ #include @@ -2315,6 +2315,15 @@ scsi_calc_syncsrate(u_int period_factor) int i; int num_syncrates; + /* + * It's a bug if period is zero, but if it is anyway, don't + * die with a divide fault- instead return something which + * 'approximates' async + */ + if (period_factor == 0) { + return (3300); + } + num_syncrates = sizeof(scsi_syncrates) / sizeof(scsi_syncrates[0]); /* See if the period is in the "exception" table */ for (i = 0; i < num_syncrates; i++) { -- 2.41.0