X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sound%2Foss%2Femu10k1%2Faudio.c;h=1aac3655d68ebae59831cd31d621d2c208031f9c;hb=5e3b93f248c98873cc843e83092bb8da92ac85a2;hp=9cf30ab2ff429301cc8261c87914493bed7cbf77;hpb=a91482bdcc2e0f6035702e46f1b99043a0893346;p=linux-2.6.git diff --git a/sound/oss/emu10k1/audio.c b/sound/oss/emu10k1/audio.c index 9cf30ab2f..1aac3655d 100644 --- a/sound/oss/emu10k1/audio.c +++ b/sound/oss/emu10k1/audio.c @@ -59,6 +59,9 @@ static ssize_t emu10k1_audio_read(struct file *file, char __user *buffer, size_t DPD(3, "emu10k1_audio_read(), buffer=%p, count=%d\n", buffer, (u32) count); + if (ppos != &file->f_pos) + return -ESPIPE; + if (!access_ok(VERIFY_WRITE, buffer, count)) return -EFAULT; @@ -143,6 +146,9 @@ static ssize_t emu10k1_audio_write(struct file *file, const char __user *buffer, DPD(3, "emu10k1_audio_write(), buffer=%p, count=%d\n", buffer, (u32) count); + if (ppos != &file->f_pos) + return -ESPIPE; + if (!access_ok(VERIFY_READ, buffer, count)) return -EFAULT; @@ -1243,7 +1249,7 @@ match: file->private_data = (void *) wave_dev; - return nonseekable_open(inode, file); + return 0; } static int emu10k1_audio_release(struct inode *inode, struct file *file)