Fix some miscellaneous places that were using raw open() or

fopen(), instead of going through fd.c ... naughty naughty.
This commit is contained in:
Tom Lane 1999-05-09 00:54:30 +00:00
parent 71d5d95376
commit b5bcef683b
4 changed files with 56 additions and 31 deletions

View File

@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/libpq/be-fsstubs.c,v 1.29 1999/05/03 19:09:39 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/libpq/be-fsstubs.c,v 1.30 1999/05/09 00:54:30 tgl Exp $
* *
* NOTES * NOTES
* This should be moved to a more appropriate place. It is here * This should be moved to a more appropriate place. It is here
@ -99,7 +99,7 @@ lo_close(int fd)
{ {
MemoryContext currentContext; MemoryContext currentContext;
if (fd >= MAX_LOBJ_FDS) if (fd < 0 || fd >= MAX_LOBJ_FDS)
{ {
elog(ERROR, "lo_close: large obj descriptor (%d) out of range", fd); elog(ERROR, "lo_close: large obj descriptor (%d) out of range", fd);
return -2; return -2;
@ -131,14 +131,34 @@ lo_close(int fd)
int int
lo_read(int fd, char *buf, int len) lo_read(int fd, char *buf, int len)
{ {
Assert(cookies[fd] != NULL); if (fd < 0 || fd >= MAX_LOBJ_FDS)
{
elog(ERROR, "lo_read: large obj descriptor (%d) out of range", fd);
return -2;
}
if (cookies[fd] == NULL)
{
elog(ERROR, "lo_read: invalid large obj descriptor (%d)", fd);
return -3;
}
return inv_read(cookies[fd], buf, len); return inv_read(cookies[fd], buf, len);
} }
int int
lo_write(int fd, char *buf, int len) lo_write(int fd, char *buf, int len)
{ {
Assert(cookies[fd] != NULL); if (fd < 0 || fd >= MAX_LOBJ_FDS)
{
elog(ERROR, "lo_write: large obj descriptor (%d) out of range", fd);
return -2;
}
if (cookies[fd] == NULL)
{
elog(ERROR, "lo_write: invalid large obj descriptor (%d)", fd);
return -3;
}
return inv_write(cookies[fd], buf, len); return inv_write(cookies[fd], buf, len);
} }
@ -149,11 +169,16 @@ lo_lseek(int fd, int offset, int whence)
MemoryContext currentContext; MemoryContext currentContext;
int ret; int ret;
if (fd >= MAX_LOBJ_FDS) if (fd < 0 || fd >= MAX_LOBJ_FDS)
{ {
elog(ERROR, "lo_seek: large obj descriptor (%d) out of range", fd); elog(ERROR, "lo_lseek: large obj descriptor (%d) out of range", fd);
return -2; return -2;
} }
if (cookies[fd] == NULL)
{
elog(ERROR, "lo_lseek: invalid large obj descriptor (%d)", fd);
return -3;
}
currentContext = MemoryContextSwitchTo((MemoryContext) fscxt); currentContext = MemoryContextSwitchTo((MemoryContext) fscxt);
@ -197,7 +222,7 @@ lo_creat(int mode)
int int
lo_tell(int fd) lo_tell(int fd)
{ {
if (fd >= MAX_LOBJ_FDS) if (fd < 0 || fd >= MAX_LOBJ_FDS)
{ {
elog(ERROR, "lo_tell: large object descriptor (%d) out of range", fd); elog(ERROR, "lo_tell: large object descriptor (%d) out of range", fd);
return -2; return -2;
@ -255,7 +280,7 @@ lowrite(int fd, struct varlena * wbuf)
Oid Oid
lo_import(text *filename) lo_import(text *filename)
{ {
int fd; File fd;
int nbytes, int nbytes,
tmp; tmp;
@ -269,13 +294,13 @@ lo_import(text *filename)
*/ */
StrNCpy(fnamebuf, VARDATA(filename), VARSIZE(filename) - VARHDRSZ + 1); StrNCpy(fnamebuf, VARDATA(filename), VARSIZE(filename) - VARHDRSZ + 1);
#ifndef __CYGWIN32__ #ifndef __CYGWIN32__
fd = open(fnamebuf, O_RDONLY, 0666); fd = PathNameOpenFile(fnamebuf, O_RDONLY, 0666);
#else #else
fd = open(fnamebuf, O_RDONLY | O_BINARY, 0666); fd = PathNameOpenFile(fnamebuf, O_RDONLY | O_BINARY, 0666);
#endif #endif
if (fd < 0) if (fd < 0)
{ /* error */ { /* error */
elog(ERROR, "be_lo_import: can't open unix file\"%s\"\n", elog(ERROR, "be_lo_import: can't open unix file \"%s\"\n",
fnamebuf); fnamebuf);
} }
@ -298,7 +323,7 @@ lo_import(text *filename)
/* /*
* read in from the Unix file and write to the inversion file * read in from the Unix file and write to the inversion file
*/ */
while ((nbytes = read(fd, buf, BUFSIZE)) > 0) while ((nbytes = FileRead(fd, buf, BUFSIZE)) > 0)
{ {
tmp = inv_write(lobj, buf, nbytes); tmp = inv_write(lobj, buf, nbytes);
if (tmp < nbytes) if (tmp < nbytes)
@ -308,7 +333,7 @@ lo_import(text *filename)
} }
} }
close(fd); FileClose(fd);
inv_close(lobj); inv_close(lobj);
return lobjOid; return lobjOid;
@ -321,7 +346,7 @@ lo_import(text *filename)
int4 int4
lo_export(Oid lobjId, text *filename) lo_export(Oid lobjId, text *filename)
{ {
int fd; File fd;
int nbytes, int nbytes,
tmp; tmp;
@ -331,7 +356,7 @@ lo_export(Oid lobjId, text *filename)
mode_t oumask; mode_t oumask;
/* /*
* create an inversion "object" * open the inversion "object"
*/ */
lobj = inv_open(lobjId, INV_READ); lobj = inv_open(lobjId, INV_READ);
if (lobj == NULL) if (lobj == NULL)
@ -343,17 +368,17 @@ lo_export(Oid lobjId, text *filename)
/* /*
* open the file to be written to * open the file to be written to
*/ */
oumask = umask((mode_t) 0);
StrNCpy(fnamebuf, VARDATA(filename), VARSIZE(filename) - VARHDRSZ + 1); StrNCpy(fnamebuf, VARDATA(filename), VARSIZE(filename) - VARHDRSZ + 1);
oumask = umask((mode_t) 0);
#ifndef __CYGWIN32__ #ifndef __CYGWIN32__
fd = open(fnamebuf, O_CREAT | O_WRONLY | O_TRUNC, 0666); fd = PathNameOpenFile(fnamebuf, O_CREAT | O_WRONLY | O_TRUNC, 0666);
#else #else
fd = open(fnamebuf, O_CREAT | O_WRONLY | O_TRUNC | O_BINARY, 0666); fd = PathNameOpenFile(fnamebuf, O_CREAT | O_WRONLY | O_TRUNC | O_BINARY, 0666);
#endif #endif
umask(oumask); umask(oumask);
if (fd < 0) if (fd < 0)
{ /* error */ { /* error */
elog(ERROR, "lo_export: can't open unix file\"%s\"", elog(ERROR, "lo_export: can't open unix file \"%s\"",
fnamebuf); fnamebuf);
} }
@ -362,7 +387,7 @@ lo_export(Oid lobjId, text *filename)
*/ */
while ((nbytes = inv_read(lobj, buf, BUFSIZE)) > 0) while ((nbytes = inv_read(lobj, buf, BUFSIZE)) > 0)
{ {
tmp = write(fd, buf, nbytes); tmp = FileWrite(fd, buf, nbytes);
if (tmp < nbytes) if (tmp < nbytes)
{ {
elog(ERROR, "lo_export: error while writing \"%s\"", elog(ERROR, "lo_export: error while writing \"%s\"",
@ -371,7 +396,7 @@ lo_export(Oid lobjId, text *filename)
} }
inv_close(lobj); inv_close(lobj);
close(fd); FileClose(fd);
return 1; return 1;
} }

View File

@ -9,7 +9,7 @@
* Dec 17, 1997 - Todd A. Brandys * Dec 17, 1997 - Todd A. Brandys
* Orignal Version Completed. * Orignal Version Completed.
* *
* $Id: crypt.c,v 1.15 1999/02/13 23:15:42 momjian Exp $ * $Id: crypt.c,v 1.16 1999/05/09 00:54:30 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -174,7 +174,7 @@ crypt_loadpwdfile()
pwd_cache = (char **) realloc((void *) pwd_cache, sizeof(char *) * (pwd_cache_count + 1)); pwd_cache = (char **) realloc((void *) pwd_cache, sizeof(char *) * (pwd_cache_count + 1));
pwd_cache[pwd_cache_count++] = pstrdup(buffer); pwd_cache[pwd_cache_count++] = pstrdup(buffer);
} }
fclose(pwd_file); FreeFile(pwd_file);
/* /*
* Now sort the entries in the cache for faster searching later. * Now sort the entries in the cache for faster searching later.

View File

@ -5,7 +5,7 @@
* wherein you authenticate a user by seeing what IP address the system * wherein you authenticate a user by seeing what IP address the system
* says he comes from and possibly using ident). * says he comes from and possibly using ident).
* *
* $Id: hba.c,v 1.40 1999/04/16 04:59:03 tgl Exp $ * $Id: hba.c,v 1.41 1999/05/09 00:54:30 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -966,9 +966,9 @@ GetCharSetByHost(char *TableName, int host, const char *DataDir)
map_file = (char *) palloc(bufsize); map_file = (char *) palloc(bufsize);
snprintf(map_file, bufsize, "%s/%s", DataDir, CHARSET_FILE); snprintf(map_file, bufsize, "%s/%s", DataDir, CHARSET_FILE);
#ifndef __CYGWIN32__ #ifndef __CYGWIN32__
file = fopen(map_file, "r"); file = AllocateFile(map_file, "r");
#else #else
file = fopen(map_file, "rb"); file = AllocateFile(map_file, "rb");
#endif #endif
if (file == NULL) if (file == NULL)
{ {
@ -1049,7 +1049,7 @@ GetCharSetByHost(char *TableName, int host, const char *DataDir)
} }
} }
} }
fclose(file); FreeFile(file);
pfree(map_file); pfree(map_file);
for (i = 0; i < ChIndex; i++) for (i = 0; i < ChIndex; i++)

View File

@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/init/miscinit.c,v 1.26 1999/02/13 23:20:01 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/utils/init/miscinit.c,v 1.27 1999/05/09 00:54:30 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -339,9 +339,9 @@ SetCharSet()
strlen(p) + 2) * sizeof(char)); strlen(p) + 2) * sizeof(char));
sprintf(map_file, "%s/%s", DataDir, p); sprintf(map_file, "%s/%s", DataDir, p);
#ifndef __CYGWIN32__ #ifndef __CYGWIN32__
file = fopen(map_file, "r"); file = AllocateFile(map_file, "r");
#else #else
file = fopen(map_file, "rb"); file = AllocateFile(map_file, "rb");
#endif #endif
if (file == NULL) if (file == NULL)
return; return;
@ -376,7 +376,7 @@ SetCharSet()
} }
} }
} }
fclose(file); FreeFile(file);
free(map_file); free(map_file);
} }
} }