Re: [HACKERS] Possible make_oidjoins_check Security Issue

Поиск
Список
Период
Сортировка
Искать
От
Bruce Momjian
Тема
Re: [HACKERS] Possible make_oidjoins_check Security Issue
Дата
Msg-id
200411032245.iA3Mjxg05276@candle.pha.pa.us
Ответ на
Список
Дерево обсуждения
Re: CVS should die Christopher Browne <cbbrowne@acm.org>
Tom Lane wrote:
> Bruce Momjian  writes:
> > I believe the proper way to handle this is a new directory under /tmp. 
> 
> It's definitely not worth the trouble.  I looked at what configure does
> to make /tmp subdirectories portably, and it is spectacularly ugly
> (not to mention long).  If make_oidjoins_check were a user-facing tool
> that would be one thing, but it isn't ...

>From a public relations perspective and a code reuse perspective I think
we should create temporary tables securely.  The attached applied patch
fixes contrib/findoidjoins/make_oidjoins_check.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
Index: contrib/findoidjoins/make_oidjoins_check
===================================================================
RCS file: /cvsroot/pgsql/contrib/findoidjoins/make_oidjoins_check,v
retrieving revision 1.5
diff -c -c -r1.5 make_oidjoins_check
*** contrib/findoidjoins/make_oidjoins_check	20 Oct 2004 16:42:46 -0000	1.5
--- contrib/findoidjoins/make_oidjoins_check	3 Nov 2004 22:42:06 -0000
***************
*** 10,21 ****
  # Caution: you may need to use GNU awk.
  AWK=${AWK:-awk}
  
! INPUTFILE="tmp$$a"
! DUPSFILE="tmp$$b"
! NONDUPSFILE="tmp$$c"
! rm -f $INPUTFILE $DUPSFILE $NONDUPSFILE
  
! trap "rm -f $INPUTFILE $DUPSFILE $NONDUPSFILE" 0 1 2 3 15
  
  # Read input
  cat "$@" >$INPUTFILE
--- 10,32 ----
  # Caution: you may need to use GNU awk.
  AWK=${AWK:-awk}
  
! TMP="/tmp/$$"
! trap "rm -rf $TMP" 0 1 2 3 15
  
! # Create a temporary directory with the proper permissions so no one can
! # intercept our temporary files and cause a security breach.
! OMASK="`umask`"
! umask 077
! if ! mkdir $TMP
! then	echo "Can't create temporary directory $TMP." 1>&2
! 	exit 1
! fi
! umask "$OMASK"
! unset OMASK
! 
! INPUTFILE="$TMP/a"
! DUPSFILE="$TMP/b"
! NONDUPSFILE="$TMP/c"
  
  # Read input
  cat "$@" >$INPUTFILE
В списке pgsql-patches по дате отправления
От: Guillaume LELARGE
Дата:
От: Bruce Momjian
Дата:
FAQ