diff options
author | dd <dd@FreeBSD.org> | 2001-11-24 15:59:46 +0000 |
---|---|---|
committer | dd <dd@FreeBSD.org> | 2001-11-24 15:59:46 +0000 |
commit | 419c6f0b7b9ee9fc42003e916b8dd3d4687aa195 (patch) | |
tree | 9b523f22cda1ff6a503ead39130f7184af34e801 /sys/dev/snp | |
parent | 65ce48703377a0df80064004e290fe94597973fb (diff) | |
download | FreeBSD-src-419c6f0b7b9ee9fc42003e916b8dd3d4687aa195.zip FreeBSD-src-419c6f0b7b9ee9fc42003e916b8dd3d4687aa195.tar.gz |
Check the return value of tsleep() in snpread(). This may be
important, since our sleep is interruptable (PCATCH flag).
PR: 30985
Discovered by: Vladimir Jakovenko <vovik@lucky.net>
Submitted by: Valentin Nechayev <netch@segfault.kiev.ua>
Diffstat (limited to 'sys/dev/snp')
-rw-r--r-- | sys/dev/snp/snp.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/snp/snp.c b/sys/dev/snp/snp.c index 0b45047..8c900d8 100644 --- a/sys/dev/snp/snp.c +++ b/sys/dev/snp/snp.c @@ -256,7 +256,10 @@ snpread(dev, uio, flag) if (flag & IO_NDELAY) return (EWOULDBLOCK); snp->snp_flags |= SNOOP_RWAIT; - tsleep((caddr_t)snp, (PZERO + 1) | PCATCH, "snprd", 0); + error = tsleep((caddr_t)snp, (PZERO + 1) | PCATCH, + "snprd", 0); + if (error != 0) + return (error); } } while (snp->snp_len == 0); |