summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata/ata-all.c
diff options
context:
space:
mode:
authorsos <sos@FreeBSD.org>2003-10-10 11:00:06 +0000
committersos <sos@FreeBSD.org>2003-10-10 11:00:06 +0000
commitdff7842fedb3ab8a5a13b7cff94c4b0b9e6fdb51 (patch)
treebc1c70c93c304813f0c0fb9a94df66e7de8aff39 /sys/dev/ata/ata-all.c
parentee29ad95a7ac79b1ea306ebd059e9e44a6f7674b (diff)
downloadFreeBSD-src-dff7842fedb3ab8a5a13b7cff94c4b0b9e6fdb51.zip
FreeBSD-src-dff7842fedb3ab8a5a13b7cff94c4b0b9e6fdb51.tar.gz
Dont store ata_params for devices that return a bogus ident string.
Diffstat (limited to 'sys/dev/ata/ata-all.c')
-rw-r--r--sys/dev/ata/ata-all.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/dev/ata/ata-all.c b/sys/dev/ata/ata-all.c
index 825027e..f58e49e 100644
--- a/sys/dev/ata/ata-all.c
+++ b/sys/dev/ata/ata-all.c
@@ -35,6 +35,7 @@ __FBSDID("$FreeBSD$");
#include <sys/ata.h>
#include <sys/kernel.h>
#include <sys/endian.h>
+#include <sys/ctype.h>
#include <sys/conf.h>
#include <sys/bus.h>
#include <sys/bio.h>
@@ -555,6 +556,8 @@ ata_getparam(struct ata_device *atadev, u_int8_t command)
}
ata_free_request(request);
}
+ if (!isalpha(atacap->model[0]) || !isalpha(atacap->model[1]))
+ error = ENXIO;
if (error) {
atadev->param = NULL;
free(atacap, M_ATA);
OpenPOWER on IntegriCloud