diff options
author | 2005-09-08 03:33:55 +0000 | |
---|---|---|
committer | 2005-09-08 03:33:55 +0000 | |
commit | 817e312bc67bbd6d9c2171f6e45accf75a09a580 (patch) | |
tree | 1a14dff95630ccfc75e8b60351364420c3fdfcbd | |
parent | add missing TULIP_STS_LINKFAIL flag in tulip_21041_media_probe(). (diff) | |
download | wireguard-openbsd-817e312bc67bbd6d9c2171f6e45accf75a09a580.tar.xz wireguard-openbsd-817e312bc67bbd6d9c2171f6e45accf75a09a580.zip |
free(NULL, ...) is not safe in the kernel. So check for NULL'ness
before free()'ing buf in sd_get_parms(). Tweak code so there is only
one free(buf, ...) to worry about.
ok deraadt@.
-rw-r--r-- | sys/scsi/sd.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/scsi/sd.c b/sys/scsi/sd.c index 7e5d583f277..cea8569a3b1 100644 --- a/sys/scsi/sd.c +++ b/sys/scsi/sd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sd.c,v 1.90 2005/08/27 03:50:04 krw Exp $ */ +/* $OpenBSD: sd.c,v 1.91 2005/09/08 03:33:55 krw Exp $ */ /* $NetBSD: sd.c,v 1.111 1997/04/02 02:29:41 mycroft Exp $ */ /*- @@ -1398,10 +1398,12 @@ sd_get_parms(sd, dp, flags) } validate: - if (dp->disksize == 0) { + if (buf) free(buf, M_TEMP); + + if (dp->disksize == 0) return (SDGP_RESULT_OFFLINE); - } + if (ssblksize > 0) dp->blksize = ssblksize; else @@ -1423,7 +1425,6 @@ validate: default: SC_DEBUG(sd->sc_link, SDEV_DB1, ("sd_get_parms: bad blksize: %#x\n", dp->blksize)); - free(buf, M_TEMP); return (SDGP_RESULT_OFFLINE); } @@ -1445,7 +1446,6 @@ validate: dp->cyls = (cyls == 0) ? dp->disksize / (dp->heads * dp->sectors) : cyls; - free(buf, M_TEMP); return (SDGP_RESULT_OK); } |