diff --git a/src/port/fseeko.c b/src/port/fseeko.c index 60a0ae4102923e79899b4971d92eafe303ecd235..dd4ef3247187dc6b834758b6e1e6a2a51dfe799d 100644 --- a/src/port/fseeko.c +++ b/src/port/fseeko.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/port/fseeko.c,v 1.2 2002/10/23 21:16:17 momjian Exp $ + * $Header: /cvsroot/pgsql/src/port/fseeko.c,v 1.3 2002/10/23 21:39:27 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -40,16 +40,10 @@ fseeko(FILE *stream, off_t offset, int whence) case SEEK_CUR: flockfile(stream); if (fgetpos(stream, &floc) != 0) - { - funlockfile(stream); - return -1; - } + goto failure; floc += offset; if (fsetpos(stream, &floc) != 0) - { - funlockfile(stream); - return -1; - } + goto failure; flockfile(stream); return 0; break; @@ -61,16 +55,10 @@ fseeko(FILE *stream, off_t offset, int whence) case SEEK_END: flockfile(stream); if (fstat(fileno(stream), &filestat) != 0) - { - funlockfile(stream); - return -1; - } + goto failure; floc = filestat.st_size; if (fsetpos(stream, &floc) != 0) - { - funlockfile(stream); - return -1; - } + goto failure; funlockfile(stream); return 0; break; @@ -78,6 +66,10 @@ fseeko(FILE *stream, off_t offset, int whence) errno = EINVAL; return -1; } + +failure: + funlockfile(stream); + return -1; }