don't disable seeking after first seek failure
authorRich Felker <dalias@aerifal.cx>
Sat, 2 Apr 2011 17:55:54 +0000 (13:55 -0400)
committerRich Felker <dalias@aerifal.cx>
Sat, 2 Apr 2011 17:55:54 +0000 (13:55 -0400)
this could cause problems if the application uses dup2(fd,fileno(f))
to redirect, and the old fd was not seekable but the new fd is.

src/stdio/__stdio_seek.c

index 35ae788cd1aface51136b4d53ffa6e493e98a37d..13e06a663eff8e4cb79cabf33c4ec08df20e570e 100644 (file)
@@ -1,11 +1,5 @@
 #include "stdio_impl.h"
 
-static off_t retneg1(FILE *f, off_t off, int whence)
-{
-       errno = ESPIPE;
-       return -1;
-}
-
 off_t __stdio_seek(FILE *f, off_t off, int whence)
 {
        off_t ret;
@@ -15,7 +9,5 @@ off_t __stdio_seek(FILE *f, off_t off, int whence)
 #else
        ret = syscall(SYS_lseek, f->fd, off, whence);
 #endif
-       /* Detect unseekable files and optimize future failures out */
-       if (ret < 0 && errno == ESPIPE) f->seek = retneg1;
        return ret;
 }