summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Gwynne <dlg@cvs.openbsd.org>2005-08-24 03:39:53 +0000
committerDavid Gwynne <dlg@cvs.openbsd.org>2005-08-24 03:39:53 +0000
commite43eff62dc2370451bf18d1e2f3ee90b31f35393 (patch)
treee745c199f698171be79c7d02687d6204ab3ac118
parentefa8667a804bfacc409a408004fb6e652d415407 (diff)
dont reject safte devices that have more inquiry information than the
space we want to store it in. thanks to mtu for providing access to hardware for this. ok deraadt@
-rw-r--r--sys/scsi/safte.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/scsi/safte.c b/sys/scsi/safte.c
index 8d648a25130..d2e6dcd9525 100644
--- a/sys/scsi/safte.c
+++ b/sys/scsi/safte.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: safte.c,v 1.15 2005/08/23 05:29:42 marco Exp $ */
+/* $OpenBSD: safte.c,v 1.16 2005/08/24 03:39:52 dlg Exp $ */
/*
* Copyright (c) 2005 David Gwynne <dlg@openbsd.org>
@@ -144,8 +144,11 @@ safte_match(struct device *parent, void *match, void *aux)
memset(&cmd, 0, sizeof(cmd));
cmd.opcode = INQUIRY;
cmd.length = inq->additional_length + SAFTE_EXTRA_OFFSET;
- if (cmd.length > sizeof(inqbuf) || cmd.length < SAFTE_INQ_LEN)
- return(0);
+ if (cmd.length < SAFTE_INQ_LEN)
+ return (0);
+
+ if (cmd.length > sizeof(inqbuf))
+ cmd.length = sizeof(inqbuf);
memset(&inqbuf, 0, sizeof(inqbuf));
memset(&inqbuf.extra, ' ', sizeof(inqbuf.extra));