diff options
author | sos <sos@FreeBSD.org> | 2001-05-30 08:06:57 +0000 |
---|---|---|
committer | sos <sos@FreeBSD.org> | 2001-05-30 08:06:57 +0000 |
commit | 38d10280a66ad2b237765cf1b94fe7a6856ef19f (patch) | |
tree | 82247f44bada78e48055eb69ab45df28d03837da /sys/dev | |
parent | b515db2560e8f912d65e684abac1d8acc57442e8 (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/dev/ata/atapi-cd.c | 3 |
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; } |