? config.log
? config.cache
? config.status
? GNUmakefile
? src/Makefile.custom
? src/GNUmakefile
? src/Makefile.global
? src/log
? src/crtags
? src/backend/postgres
? src/backend/catalog/global.description
? src/backend/catalog/global.bki
? src/backend/catalog/template1.bki
? src/backend/catalog/template1.description
? src/backend/port/Makefile
? src/bin/initdb/initdb
? src/bin/initlocation/initlocation
? src/bin/ipcclean/ipcclean
? src/bin/pg_config/pg_config
? src/bin/pg_ctl/pg_ctl
? src/bin/pg_dump/pg_dump
? src/bin/pg_dump/pg_restore
? src/bin/pg_dump/pg_dumpall
? src/bin/pg_id/pg_id
? src/bin/pg_passwd/pg_passwd
? src/bin/pgaccess/pgaccess
? src/bin/pgtclsh/Makefile.tkdefs
? src/bin/pgtclsh/Makefile.tcldefs
? src/bin/pgtclsh/pgtclsh
? src/bin/pgtclsh/pgtksh
? src/bin/psql/psql
? src/bin/scripts/createlang
? src/include/config.h
? src/include/stamp-h
? src/interfaces/ecpg/lib/libecpg.so.3.2.0
? src/interfaces/ecpg/preproc/ecpg
? src/interfaces/libpgeasy/libpgeasy.so.2.1
? src/interfaces/libpgtcl/libpgtcl.so.2.1
? src/interfaces/libpq/libpq.so.2.1
? src/interfaces/perl5/blib
? src/interfaces/perl5/Makefile
? src/interfaces/perl5/pm_to_blib
? src/interfaces/perl5/Pg.c
? src/interfaces/perl5/Pg.bs
? src/pl/plperl/blib
? src/pl/plperl/Makefile
? src/pl/plperl/pm_to_blib
? src/pl/plperl/SPI.c
? src/pl/plperl/plperl.bs
? src/pl/plpgsql/src/libplpgsql.so.1.0
? src/pl/tcl/Makefile.tcldefs
Index: src/bin/psql/command.c
===================================================================
RCS file: /home/projects/pgsql/cvsroot/pgsql/src/bin/psql/command.c,v
retrieving revision 1.38
diff -c -r1.38 command.c
*** src/bin/psql/command.c	2000/11/13 23:37:53	1.38
--- src/bin/psql/command.c	2000/11/25 06:18:33
***************
*** 13,19 ****
  #include <ctype.h>
  #ifndef WIN32
  #include <sys/types.h>			/* for umask() */
! #include <sys/stat.h>			/* for umask(), stat() */
  #include <unistd.h>				/* for geteuid(), getpid(), stat() */
  #else
  #include <win32.h>
--- 13,20 ----
  #include <ctype.h>
  #ifndef WIN32
  #include <sys/types.h>			/* for umask() */
! #include <sys/stat.h>			/* for stat() */
! #include <fcntl.h>				/* open() flags */
  #include <unistd.h>				/* for geteuid(), getpid(), stat() */
  #else
  #include <win32.h>
***************
*** 1397,1403 ****
  	FILE	   *stream;
  	const char *fname;
  	bool		error = false;
! 
  #ifndef WIN32
  	struct stat before,
  				after;
--- 1398,1405 ----
  	FILE	   *stream;
  	const char *fname;
  	bool		error = false;
! 	int			fd;
! 	
  #ifndef WIN32
  	struct stat before,
  				after;
***************
*** 1411,1417 ****
  	{
  		/* make a temp file to edit */
  #ifndef WIN32
- 		mode_t		oldumask;
  		const char *tmpdirenv = getenv("TMPDIR");
  
  		sprintf(fnametmp, "%s/psql.edit.%ld.%ld",
--- 1413,1418 ----
***************
*** 1422,1436 ****
  #endif
  		fname = (const char *) fnametmp;
  
! #ifndef WIN32
! 		oldumask = umask(0177);
! #endif
! 		stream = fopen(fname, "w");
! #ifndef WIN32
! 		umask(oldumask);
! #endif
  
! 		if (!stream)
  		{
  			psql_error("couldn't open temp file %s: %s\n", fname, strerror(errno));
  			error = true;
--- 1423,1433 ----
  #endif
  		fname = (const char *) fnametmp;
  
! 		fd = open(fname, O_WRONLY|O_CREAT|O_EXCL, 0600);
! 		if (fd != -1)
! 			stream = fdopen(fd, "w");
  
! 		if (fd == -1 || !stream)
  		{
  			psql_error("couldn't open temp file %s: %s\n", fname, strerror(errno));
  			error = true;
