Server IP : 103.119.228.120 / Your IP : 3.136.19.203 Web Server : Apache System : Linux v8.techscape8.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64 User : nobody ( 99) PHP Version : 5.6.40 Disable Function : shell_exec,symlink,system,exec,proc_get_status,proc_nice,proc_terminate,define_syslog_variables,syslog,openlog,closelog,escapeshellcmd,passthru,ocinum cols,ini_alter,leak,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dl,dll,myshellexec,proc_open,socket_bind,proc_close,escapeshellarg,parse_ini_filepopen,fpassthru,exec,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,dl,symlink,shell_exec,system,dl,passthru,escapeshellarg,escapeshellcmd,myshellexec,c99_buff_prepare,c99_sess_put,fpassthru,getdisfunc,fx29exec,fx29exec2,is_windows,disp_freespace,fx29sh_getupdate,fx29_buff_prepare,fx29_sess_put,fx29shexit,fx29fsearch,fx29ftpbrutecheck,fx29sh_tools,fx29sh_about,milw0rm,imagez,sh_name,myshellexec,checkproxyhost,dosyayicek,c99_buff_prepare,c99_sess_put,c99getsource,c99sh_getupdate,c99fsearch,c99shexit,view_perms,posix_getpwuid,posix_getgrgid,posix_kill,parse_perms,parsesort,view_perms_color,set_encoder_input,ls_setcheckboxall,ls_reverse_all,rsg_read,rsg_glob,selfURL,dispsecinfo,unix2DosTime,addFile,system,get_users,view_size,DirFiles,DirFilesWide,DirPrintHTMLHeaders,GetFilesTotal,GetTitles,GetTimeTotal,GetMatchesCount,GetFileMatchesCount,GetResultFiles,fs_copy_dir,fs_copy_obj,fs_move_dir,fs_move_obj,fs_rmdir,SearchText,getmicrotime MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/local/ssl/local/ssl/local/ssl/share/doc/postgresql-9.2.24/html/ |
Upload File : |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Release 7.4.8</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REV="MADE" HREF="mailto:pgsql-docs@postgresql.org"><LINK REL="HOME" TITLE="PostgreSQL 9.2.24 Documentation" HREF="index.html"><LINK REL="UP" TITLE="Release Notes" HREF="release.html"><LINK REL="PREVIOUS" TITLE="Release 7.4.9" HREF="release-7-4-9.html"><LINK REL="NEXT" TITLE="Release 7.4.7" HREF="release-7-4-7.html"><LINK REL="STYLESHEET" TYPE="text/css" HREF="stylesheet.css"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"><META NAME="creation" CONTENT="2017-11-06T22:43:11"></HEAD ><BODY CLASS="SECT1" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="5" ALIGN="center" VALIGN="bottom" ><A HREF="index.html" >PostgreSQL 9.2.24 Documentation</A ></TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A TITLE="Release 7.4.9" HREF="release-7-4-9.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="release.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="60%" ALIGN="center" VALIGN="bottom" >Appendix E. Release Notes</TD ><TD WIDTH="20%" ALIGN="right" VALIGN="top" ><A TITLE="Release 7.4.7" HREF="release-7-4-7.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="RELEASE-7-4-8" >E.219. Release 7.4.8</A ></H1 ><DIV CLASS="FORMALPARA" ><P ><B >Release date: </B >2005-05-09</P ></DIV ><P > This release contains a variety of fixes from 7.4.7, including several security-related issues. For information about new features in the 7.4 major release, see <A HREF="release-7-4.html" >Section E.227</A >. </P ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="AEN141392" >E.219.1. Migration to Version 7.4.8</A ></H2 ><P > A dump/restore is not required for those running 7.4.X. However, it is one possible way of handling two significant security problems that have been found in the initial contents of 7.4.X system catalogs. A dump/initdb/reload sequence using 7.4.8's initdb will automatically correct these problems. </P ><P > The larger security problem is that the built-in character set encoding conversion functions can be invoked from SQL commands by unprivileged users, but the functions were not designed for such use and are not secure against malicious choices of arguments. The fix involves changing the declared parameter list of these functions so that they can no longer be invoked from SQL commands. (This does not affect their normal use by the encoding conversion machinery.) </P ><P > The lesser problem is that the <TT CLASS="FILENAME" >contrib/tsearch2</TT > module creates several functions that are misdeclared to return <TT CLASS="TYPE" >internal</TT > when they do not accept <TT CLASS="TYPE" >internal</TT > arguments. This breaks type safety for all functions using <TT CLASS="TYPE" >internal</TT > arguments. </P ><P > It is strongly recommended that all installations repair these errors, either by initdb or by following the manual repair procedures given below. The errors at least allow unprivileged database users to crash their server process, and might allow unprivileged users to gain the privileges of a database superuser. </P ><P > If you wish not to do an initdb, perform the following procedures instead. As the database superuser, do: </P><PRE CLASS="PROGRAMLISTING" >BEGIN; UPDATE pg_proc SET proargtypes[3] = 'internal'::regtype WHERE pronamespace = 11 AND pronargs = 5 AND proargtypes[2] = 'cstring'::regtype; -- The command should report having updated 90 rows; -- if not, rollback and investigate instead of committing! COMMIT;</PRE ><P> Next, if you have installed <TT CLASS="FILENAME" >contrib/tsearch2</TT >, do: </P><PRE CLASS="PROGRAMLISTING" >BEGIN; UPDATE pg_proc SET proargtypes[0] = 'internal'::regtype WHERE oid IN ( 'dex_init(text)'::regprocedure, 'snb_en_init(text)'::regprocedure, 'snb_ru_init(text)'::regprocedure, 'spell_init(text)'::regprocedure, 'syn_init(text)'::regprocedure ); -- The command should report having updated 5 rows; -- if not, rollback and investigate instead of committing! COMMIT;</PRE ><P> If this command fails with a message like <SPAN CLASS="QUOTE" >"function "dex_init(text)" does not exist"</SPAN >, then either <TT CLASS="FILENAME" >tsearch2</TT > is not installed in this database, or you already did the update. </P ><P > The above procedures must be carried out in <SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >each</I ></SPAN > database of an installation, including <TT CLASS="LITERAL" >template1</TT >, and ideally including <TT CLASS="LITERAL" >template0</TT > as well. If you do not fix the template databases then any subsequently created databases will contain the same errors. <TT CLASS="LITERAL" >template1</TT > can be fixed in the same way as any other database, but fixing <TT CLASS="LITERAL" >template0</TT > requires additional steps. First, from any database issue: </P><PRE CLASS="PROGRAMLISTING" >UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';</PRE ><P> Next connect to <TT CLASS="LITERAL" >template0</TT > and perform the above repair procedures. Finally, do: </P><PRE CLASS="PROGRAMLISTING" >-- re-freeze template0: VACUUM FREEZE; -- and protect it against future alterations: UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';</PRE ><P> </P ></DIV ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="AEN141417" >E.219.2. Changes</A ></H2 ><P ></P ><UL ><LI ><P >Change encoding function signature to prevent misuse</P ></LI ><LI ><P >Change <TT CLASS="FILENAME" >contrib/tsearch2</TT > to avoid unsafe use of <TT CLASS="TYPE" >INTERNAL</TT > function results</P ></LI ><LI ><P >Repair ancient race condition that allowed a transaction to be seen as committed for some purposes (eg SELECT FOR UPDATE) slightly sooner than for other purposes</P ><P >This is an extremely serious bug since it could lead to apparent data inconsistencies being briefly visible to applications.</P ></LI ><LI ><P >Repair race condition between relation extension and VACUUM</P ><P >This could theoretically have caused loss of a page's worth of freshly-inserted data, although the scenario seems of very low probability. There are no known cases of it having caused more than an Assert failure.</P ></LI ><LI ><P >Fix comparisons of <TT CLASS="TYPE" >TIME WITH TIME ZONE</TT > values</P ><P >The comparison code was wrong in the case where the <TT CLASS="LITERAL" >--enable-integer-datetimes</TT > configuration switch had been used. NOTE: if you have an index on a <TT CLASS="TYPE" >TIME WITH TIME ZONE</TT > column, it will need to be <TT CLASS="COMMAND" >REINDEX</TT >ed after installing this update, because the fix corrects the sort order of column values.</P ></LI ><LI ><P >Fix <CODE CLASS="FUNCTION" >EXTRACT(EPOCH)</CODE > for <TT CLASS="TYPE" >TIME WITH TIME ZONE</TT > values</P ></LI ><LI ><P >Fix mis-display of negative fractional seconds in <TT CLASS="TYPE" >INTERVAL</TT > values</P ><P >This error only occurred when the <TT CLASS="LITERAL" >--enable-integer-datetimes</TT > configuration switch had been used.</P ></LI ><LI ><P >Ensure operations done during backend shutdown are counted by statistics collector</P ><P >This is expected to resolve reports of <SPAN CLASS="APPLICATION" >pg_autovacuum</SPAN > not vacuuming the system catalogs often enough — it was not being told about catalog deletions caused by temporary table removal during backend exit.</P ></LI ><LI ><P >Additional buffer overrun checks in plpgsql (Neil)</P ></LI ><LI ><P >Fix pg_dump to dump trigger names containing <TT CLASS="LITERAL" >%</TT > correctly (Neil)</P ></LI ><LI ><P >Fix <TT CLASS="FILENAME" >contrib/pgcrypto</TT > for newer OpenSSL builds (Marko Kreen)</P ></LI ><LI ><P >Still more 64-bit fixes for <TT CLASS="FILENAME" >contrib/intagg</TT ></P ></LI ><LI ><P >Prevent incorrect optimization of functions returning <TT CLASS="TYPE" >RECORD</TT ></P ></LI ><LI ><P >Prevent <CODE CLASS="FUNCTION" >to_char(interval)</CODE > from dumping core for month-related formats</P ></LI ><LI ><P >Prevent crash on <TT CLASS="LITERAL" >COALESCE(NULL,NULL)</TT ></P ></LI ><LI ><P >Fix <CODE CLASS="FUNCTION" >array_map</CODE > to call PL functions correctly</P ></LI ><LI ><P >Fix permission checking in <TT CLASS="COMMAND" >ALTER DATABASE RENAME</TT ></P ></LI ><LI ><P >Fix <TT CLASS="COMMAND" >ALTER LANGUAGE RENAME</TT ></P ></LI ><LI ><P >Make <CODE CLASS="FUNCTION" >RemoveFromWaitQueue</CODE > clean up after itself</P ><P >This fixes a lock management error that would only be visible if a transaction was kicked out of a wait for a lock (typically by query cancel) and then the holder of the lock released it within a very narrow window.</P ></LI ><LI ><P >Fix problem with untyped parameter appearing in <TT CLASS="COMMAND" >INSERT ... SELECT</TT ></P ></LI ><LI ><P >Fix <TT CLASS="COMMAND" >CLUSTER</TT > failure after <TT CLASS="COMMAND" >ALTER TABLE SET WITHOUT OIDS</TT ></P ></LI ></UL ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="release-7-4-9.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="release-7-4-7.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Release 7.4.9</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="release.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Release 7.4.7</TD ></TR ></TABLE ></DIV ></BODY ></HTML >