Commit b5bcef68 authored by Tom Lane's avatar Tom Lane

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

fopen(), instead of going through fd.c ... naughty naughty.
parent 71d5d953
...@@ -7,7 +7,7 @@ ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -371,7 +396,7 @@ lo_export(Oid lobjId, text *filename)
} }
inv_close(lobj); inv_close(lobj);
close(fd); FileClose(fd);
return 1; return 1;
} }
......
...@@ -9,7 +9,7 @@ ...@@ -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() ...@@ -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.
......
...@@ -5,7 +5,7 @@ ...@@ -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) ...@@ -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) ...@@ -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++)
......
...@@ -7,7 +7,7 @@ ...@@ -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() ...@@ -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() ...@@ -376,7 +376,7 @@ SetCharSet()
} }
} }
} }
fclose(file); FreeFile(file);
free(map_file); free(map_file);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment