summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata/atapi-cd.c
diff options
context:
space:
mode:
authorsos <sos@FreeBSD.org>2001-05-30 08:06:57 +0000
committersos <sos@FreeBSD.org>2001-05-30 08:06:57 +0000
commit38d10280a66ad2b237765cf1b94fe7a6856ef19f (patch)
tree82247f44bada78e48055eb69ab45df28d03837da /sys/dev/ata/atapi-cd.c
parentb515db2560e8f912d65e684abac1d8acc57442e8 (diff)
downloadFreeBSD-src-38d10280a66ad2b237765cf1b94fe7a6856ef19f.zip
FreeBSD-src-38d10280a66ad2b237765cf1b94fe7a6856ef19f.tar.gz
Dont try to play tracks outside whats on the media.
PR 26647
Diffstat (limited to 'sys/dev/ata/atapi-cd.c')
-rw-r--r--sys/dev/ata/atapi-cd.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/ata/atapi-cd.c b/sys/dev/ata/atapi-cd.c
index 3d4e7f5..8561da4 100644
--- a/sys/dev/ata/atapi-cd.c
+++ b/sys/dev/ata/atapi-cd.c
@@ -798,7 +798,8 @@ acdioctl(dev_t dev, u_long cmd, caddr_t addr, int flags, struct proc *p)
args->end_track = cdp->toc.hdr.ending_track + 1;
t1 = args->start_track - cdp->toc.hdr.starting_track;
t2 = args->end_track - cdp->toc.hdr.starting_track;
- if (t1 < 0 || t2 < 0) {
+ if (t1 < 0 || t2 < 0 ||
+ t1 > (cdp->toc.hdr.ending_track-cdp->toc.hdr.starting_track)) {
error = EINVAL;
break;
}
OpenPOWER on IntegriCloud