diff options
author | sos <sos@FreeBSD.org> | 2004-07-31 10:29:29 +0000 |
---|---|---|
committer | sos <sos@FreeBSD.org> | 2004-07-31 10:29:29 +0000 |
commit | e95ea22d811ccec3e5de120fcaaca7402df3e53f (patch) | |
tree | ef0ebd4ce240f35248ccd761b75dd2ccda434edb /sys/dev/ata | |
parent | 73d6fc00529f53ee9541c59195c7a6dab66c1abf (diff) | |
download | FreeBSD-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.c | 1 |
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)) |