summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata
diff options
context:
space:
mode:
authorsos <sos@FreeBSD.org>2004-07-31 10:29:29 +0000
committersos <sos@FreeBSD.org>2004-07-31 10:29:29 +0000
commite95ea22d811ccec3e5de120fcaaca7402df3e53f (patch)
treeef0ebd4ce240f35248ccd761b75dd2ccda434edb /sys/dev/ata
parent73d6fc00529f53ee9541c59195c7a6dab66c1abf (diff)
downloadFreeBSD-src-e95ea22d811ccec3e5de120fcaaca7402df3e53f.zip
FreeBSD-src-e95ea22d811ccec3e5de120fcaaca7402df3e53f.tar.gz
Fix the panic (""memory modified after free") when ata_getparam() fails
and retries. Found by: Nate Lawson
Diffstat (limited to 'sys/dev/ata')
-rw-r--r--sys/dev/ata/ata-all.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/dev/ata/ata-all.c b/sys/dev/ata/ata-all.c
index 2c732e9..bf705a2 100644
--- a/sys/dev/ata/ata-all.c
+++ b/sys/dev/ata/ata-all.c
@@ -560,6 +560,7 @@ ata_getparam(struct ata_device *atadev, u_int8_t command)
request->flags = (ATA_R_READ | ATA_R_IMMEDIATE);
request->data = (caddr_t)atadev->param;
request->bytecount = sizeof(struct ata_params);
+ request->donecount = 0;
request->transfersize = DEV_BSIZE;
ata_queue_request(request);
if (!(error = request->result))
OpenPOWER on IntegriCloud