mirror of
https://github.com/postgres/postgres.git
synced 2025-04-29 13:56:47 +03:00
Fix some miscellaneous places that were using raw open() or
fopen(), instead of going through fd.c ... naughty naughty.
This commit is contained in:
parent
71d5d95376
commit
b5bcef683b
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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.
|
||||||
|
@ -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++)
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user