Linux SRV-16 6.18.44-paas #1 SMP PREEMPT_DYNAMIC Thu Aug 13 10:08:12 UTC 2026 x86_64
/
proc
/
thread-self
/
root
/
opt
/
postgresql-11
/
doc
/
html
/
//proc/thread-self/root/opt/postgresql-11/doc/html/release-9-2-22.html
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>E.87. Release 9.2.22</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="release-9-2-23.html" title="E.86. Release 9.2.23" /><link rel="next" href="release-9-2-21.html" title="E.88. Release 9.2.21" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">E.87. Release 9.2.22</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="release-9-2-23.html" title="E.86. Release 9.2.23">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="release.html" title="Appendix E. Release Notes">Up</a></td><th width="60%" align="center">Appendix E. Release Notes</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 11.1 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="release-9-2-21.html" title="E.88. Release 9.2.21">Next</a></td></tr></table><hr></hr></div><div class="sect1" id="RELEASE-9-2-22"><div class="titlepage"><div><div><h2 class="title" style="clear: both">E.87. Release 9.2.22</h2></div></div></div><div class="toc"><dl class="toc"><dt><span class="sect2"><a href="release-9-2-22.html#id-1.11.6.91.5">E.87.1. Migration to Version 9.2.22</a></span></dt><dt><span class="sect2"><a href="release-9-2-22.html#id-1.11.6.91.6">E.87.2. Changes</a></span></dt></dl></div><p><strong>Release date: </strong>2017-08-10</p><p> This release contains a variety of fixes from 9.2.21. For information about new features in the 9.2 major release, see <a class="xref" href="release-9-2.html" title="E.109. Release 9.2">Section E.109</a>. </p><p> The <span class="productname">PostgreSQL</span> community will stop releasing updates for the 9.2.X release series in September 2017. Users are encouraged to update to a newer release branch soon. </p><div class="sect2" id="id-1.11.6.91.5"><div class="titlepage"><div><div><h3 class="title">E.87.1. Migration to Version 9.2.22</h3></div></div></div><p> A dump/restore is not required for those running 9.2.X. </p><p> However, if you use foreign data servers that make use of user passwords for authentication, see the first changelog entry below. </p><p> Also, if you are upgrading from a version earlier than 9.2.20, see <a class="xref" href="release-9-2-20.html" title="E.89. Release 9.2.20">Section E.89</a>. </p></div><div class="sect2" id="id-1.11.6.91.6"><div class="titlepage"><div><div><h3 class="title">E.87.2. Changes</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p> Further restrict visibility of <code class="structname">pg_user_mappings</code>.<code class="structfield">umoptions</code>, to protect passwords stored as user mapping options (Noah Misch) </p><p> The fix for CVE-2017-7486 was incorrect: it allowed a user to see the options in her own user mapping, even if she did not have <code class="literal">USAGE</code> permission on the associated foreign server. Such options might include a password that had been provided by the server owner rather than the user herself. Since <code class="structname">information_schema.user_mapping_options</code> does not show the options in such cases, <code class="structname">pg_user_mappings</code> should not either. (CVE-2017-7547) </p><p> By itself, this patch will only fix the behavior in newly initdb'd databases. If you wish to apply this change in an existing database, you will need to do the following: </p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p> Restart the postmaster after adding <code class="literal">allow_system_table_mods = true</code> to <code class="filename">postgresql.conf</code>. (In versions supporting <code class="command">ALTER SYSTEM</code>, you can use that to make the configuration change, but you'll still need a restart.) </p></li><li class="step"><p> In <span class="emphasis"><em>each</em></span> database of the cluster, run the following commands as superuser: </p><pre class="programlisting"> SET search_path = pg_catalog; CREATE OR REPLACE VIEW pg_user_mappings AS SELECT U.oid AS umid, S.oid AS srvid, S.srvname AS srvname, U.umuser AS umuser, CASE WHEN U.umuser = 0 THEN 'public' ELSE A.rolname END AS usename, CASE WHEN (U.umuser <> 0 AND A.rolname = current_user AND (pg_has_role(S.srvowner, 'USAGE') OR has_server_privilege(S.oid, 'USAGE'))) OR (U.umuser = 0 AND pg_has_role(S.srvowner, 'USAGE')) OR (SELECT rolsuper FROM pg_authid WHERE rolname = current_user) THEN U.umoptions ELSE NULL END AS umoptions FROM pg_user_mapping U LEFT JOIN pg_authid A ON (A.oid = U.umuser) JOIN pg_foreign_server S ON (U.umserver = S.oid); </pre><p> </p></li><li class="step"><p> Do not forget to include the <code class="literal">template0</code> and <code class="literal">template1</code> databases, or the vulnerability will still exist in databases you create later. To fix <code class="literal">template0</code>, you'll need to temporarily make it accept connections. In <span class="productname">PostgreSQL</span> 9.5 and later, you can use </p><pre class="programlisting"> ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true; </pre><p> and then after fixing <code class="literal">template0</code>, undo that with </p><pre class="programlisting"> ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false; </pre><p> In prior versions, instead use </p><pre class="programlisting"> UPDATE pg_database SET datallowconn = true WHERE datname = 'template0'; UPDATE pg_database SET datallowconn = false WHERE datname = 'template0'; </pre><p> </p></li><li class="step"><p> Finally, remove the <code class="literal">allow_system_table_mods</code> configuration setting, and again restart the postmaster. </p></li></ol></div></li><li class="listitem"><p> Disallow empty passwords in all password-based authentication methods (Heikki Linnakangas) </p><p> <span class="application">libpq</span> ignores empty password specifications, and does not transmit them to the server. So, if a user's password has been set to the empty string, it's impossible to log in with that password via <span class="application">psql</span> or other <span class="application">libpq</span>-based clients. An administrator might therefore believe that setting the password to empty is equivalent to disabling password login. However, with a modified or non-<span class="application">libpq</span>-based client, logging in could be possible, depending on which authentication method is configured. In particular the most common method, <code class="literal">md5</code>, accepted empty passwords. Change the server to reject empty passwords in all cases. (CVE-2017-7546) </p></li><li class="listitem"><p> On Windows, retry process creation if we fail to reserve the address range for our shared memory in the new process (Tom Lane, Amit Kapila) </p><p> This is expected to fix infrequent child-process-launch failures that are probably due to interference from antivirus products. </p></li><li class="listitem"><p> Fix low-probability corruption of shared predicate-lock hash table in Windows builds (Thomas Munro, Tom Lane) </p></li><li class="listitem"><p> Avoid logging clean closure of an SSL connection as though it were a connection reset (Michael Paquier) </p></li><li class="listitem"><p> Prevent sending SSL session tickets to clients (Tom Lane) </p><p> This fix prevents reconnection failures with ticket-aware client-side SSL code. </p></li><li class="listitem"><p> Fix code for setting <a class="xref" href="runtime-config-connection.html#GUC-TCP-KEEPALIVES-IDLE">tcp_keepalives_idle</a> on Solaris (Tom Lane) </p></li><li class="listitem"><p> Fix statistics collector to honor inquiry messages issued just after a postmaster shutdown and immediate restart (Tom Lane) </p><p> Statistics inquiries issued within half a second of the previous postmaster shutdown were effectively ignored. </p></li><li class="listitem"><p> Ensure that the statistics collector's receive buffer size is at least 100KB (Tom Lane) </p><p> This reduces the risk of dropped statistics data on older platforms whose default receive buffer size is less than that. </p></li><li class="listitem"><p> Fix possible creation of an invalid WAL segment when a standby is promoted just after it processes an <code class="literal">XLOG_SWITCH</code> WAL record (Andres Freund) </p></li><li class="listitem"><p> Fix <span class="systemitem">SIGHUP</span> and <span class="systemitem">SIGUSR1</span> handling in walsender processes (Petr Jelinek, Andres Freund) </p></li><li class="listitem"><p> Fix unnecessarily slow restarts of <span class="application">walreceiver</span> processes due to race condition in postmaster (Tom Lane) </p></li><li class="listitem"><p> Fix cases where an <code class="command">INSERT</code> or <code class="command">UPDATE</code> assigns to more than one element of a column that is of domain-over-array type (Tom Lane) </p></li><li class="listitem"><p> Move autogenerated array types out of the way during <code class="command">ALTER ... RENAME</code> (Vik Fearing) </p><p> Previously, we would rename a conflicting autogenerated array type out of the way during <code class="command">CREATE</code>; this fix extends that behavior to renaming operations. </p></li><li class="listitem"><p> Ensure that <code class="command">ALTER USER ... SET</code> accepts all the syntax variants that <code class="command">ALTER ROLE ... SET</code> does (Peter Eisentraut) </p></li><li class="listitem"><p> Properly update dependency info when changing a datatype I/O function's argument or return type from <code class="type">opaque</code> to the correct type (Heikki Linnakangas) </p><p> <code class="command">CREATE TYPE</code> updates I/O functions declared in this long-obsolete style, but it forgot to record a dependency on the type, allowing a subsequent <code class="command">DROP TYPE</code> to leave broken function definitions behind. </p></li><li class="listitem"><p> Reduce memory usage when <code class="command">ANALYZE</code> processes a <code class="type">tsvector</code> column (Heikki Linnakangas) </p></li><li class="listitem"><p> Fix unnecessary precision loss and sloppy rounding when multiplying or dividing <code class="type">money</code> values by integers or floats (Tom Lane) </p></li><li class="listitem"><p> Tighten checks for whitespace in functions that parse identifiers, such as <code class="function">regprocedurein()</code> (Tom Lane) </p><p> Depending on the prevailing locale, these functions could misinterpret fragments of multibyte characters as whitespace. </p></li><li class="listitem"><p> Use relevant <code class="literal">#define</code> symbols from Perl while compiling <span class="application">PL/Perl</span> (Ashutosh Sharma, Tom Lane) </p><p> This avoids portability problems, typically manifesting as a <span class="quote">“<span class="quote">handshake</span>”</span> mismatch during library load, when working with recent Perl versions. </p></li><li class="listitem"><p> In <span class="application">psql</span>, fix failure when <code class="command">COPY FROM STDIN</code> is ended with a keyboard EOF signal and then another <code class="command">COPY FROM STDIN</code> is attempted (Thomas Munro) </p><p> This misbehavior was observed on BSD-derived platforms (including macOS), but not on most others. </p></li><li class="listitem"><p> Fix <span class="application">pg_dump</span> to not emit invalid SQL for an empty operator class (Daniel Gustafsson) </p></li><li class="listitem"><p> Fix <span class="application">pg_dump</span> output to stdout on Windows (Kuntal Ghosh) </p><p> A compressed plain-text dump written to stdout would contain corrupt data due to failure to put the file descriptor into binary mode. </p></li><li class="listitem"><p> Fix <code class="function">pg_get_ruledef()</code> to print correct output for the <code class="literal">ON SELECT</code> rule of a view whose columns have been renamed (Tom Lane) </p><p> In some corner cases, <span class="application">pg_dump</span> relies on <code class="function">pg_get_ruledef()</code> to dump views, so that this error could result in dump/reload failures. </p></li><li class="listitem"><p> Fix dumping of function expressions in the <code class="literal">FROM</code> clause in cases where the expression does not deparse into something that looks like a function call (Tom Lane) </p></li><li class="listitem"><p> Fix <span class="application">pg_basebackup</span> output to stdout on Windows (Haribabu Kommi) </p><p> A backup written to stdout would contain corrupt data due to failure to put the file descriptor into binary mode. </p></li><li class="listitem"><p> Fix <span class="application">pg_upgrade</span> to ensure that the ending WAL record does not have <a class="xref" href="runtime-config-wal.html#GUC-WAL-LEVEL">wal_level</a> = <code class="literal">minimum</code> (Bruce Momjian) </p><p> This condition could prevent upgraded standby servers from reconnecting. </p></li><li class="listitem"><p> Always use <code class="option">-fPIC</code>, not <code class="option">-fpic</code>, when building shared libraries with gcc (Tom Lane) </p><p> This supports larger extension libraries on platforms where it makes a difference. </p></li><li class="listitem"><p> Fix unescaped-braces issue in our build scripts for Microsoft MSVC, to avoid a warning or error from recent Perl versions (Andrew Dunstan) </p></li><li class="listitem"><p> In MSVC builds, handle the case where the <span class="application">OpenSSL</span> library is not within a <code class="filename">VC</code> subdirectory (Andrew Dunstan) </p></li><li class="listitem"><p> In MSVC builds, add proper include path for <span class="application">libxml2</span> header files (Andrew Dunstan) </p><p> This fixes a former need to move things around in standard Windows installations of <span class="application">libxml2</span>. </p></li><li class="listitem"><p> In MSVC builds, recognize a Tcl library that is named <code class="filename">tcl86.lib</code> (Noah Misch) </p></li></ul></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="release-9-2-23.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="release.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="release-9-2-21.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">E.86. Release 9.2.23 </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> E.88. Release 9.2.21</td></tr></table></div></body></html>