Skip to content
Snippets Groups Projects
  1. Oct 01, 2010
  2. Sep 30, 2010
    • Tom Lane's avatar
      Use a separate interpreter for each calling SQL userid in plperl and pltcl. · 0d1f3d7b
      Tom Lane authored
      There are numerous methods by which a Perl or Tcl function can subvert
      the behavior of another such function executed later; for example, by
      redefining standard functions or operators called by the target function.
      If the target function is SECURITY DEFINER, or is called by such a
      function, this means that any ordinary SQL user with Perl or Tcl language
      usage rights can do essentially anything with the privileges of the target
      function's owner.
      
      To close this security hole, create a separate Perl or Tcl interpreter for
      each SQL userid under which plperl or pltcl functions are executed within
      a session.  However, all plperlu or pltclu functions run within a session
      still share a single interpreter, since they all execute at the trust
      level of a database superuser anyway.
      
      Note: this change results in a functionality loss when libperl has been
      built without the "multiplicity" option: it's no longer possible to call
      plperl functions under different userids in one session, since such a
      libperl can't support multiple interpreters in one process.  However, such
      a libperl already failed to support concurrent use of plperl and plperlu,
      so it's likely that few people use such versions with Postgres.
      
      Security: CVE-2010-3433
      0d1f3d7b
    • Robert Haas's avatar
      f5f945f9
    • Peter Eisentraut's avatar
      Translation updates for 9.0.1 · 9103b311
      Peter Eisentraut authored
      9103b311
    • Tom Lane's avatar
      Update release notes for releases 9.0.1, 8.4.5, 8.3.12, 8.2.18, 8.1.22, · 9caf5a84
      Tom Lane authored
      8.0.26, and 7.4.30.
      9caf5a84
  3. Sep 28, 2010
  4. Sep 27, 2010
  5. Sep 25, 2010
    • Tom Lane's avatar
      Fix another join removal bug: the check on PlaceHolderVars was wrong. · 7fc8db84
      Tom Lane authored
      The previous coding would decide that join removal was unsafe upon finding
      a PlaceHolderVar that needed to be evaluated at the inner rel and then used
      above the join.  However, this fails to cover the case of PlaceHolderVars
      that refer to both the inner rel and some other rels.  Per bug report from
      Andrus.
      7fc8db84
    • Tom Lane's avatar
      Further fixes to the pg_get_expr() security fix in back branches. · 3613d089
      Tom Lane authored
      It now emerges that the JDBC driver expects to be able to use pg_get_expr()
      on an output of a sub-SELECT.  So extend the check logic to be able to recurse
      into a sub-SELECT to see if the argument is ultimately coming from an
      appropriate column.  Per report from Thomas Kellerer.
      3613d089
    • Peter Eisentraut's avatar
      Fix man page markup for <cmdsynopsis> with multiple variants · f27860db
      Peter Eisentraut authored
      Command synopses using <cmdsynopsis> with multiple variants previously used
      <sbr> to break lines between variants.  The new man page toolchain introduced
      in 9.0 makes a mess out of that, and that markup was probably wrong all along,
      because <sbr> is supposed to break lines within a synopsis, not between them.
      So fix that by using multiple <cmdsynopsis> elements inside <refsynopsisdiv>.
      
      backpatched to 9.0
      f27860db
  6. Sep 24, 2010
  7. Sep 23, 2010
    • Robert Haas's avatar
      Add contrib/xml2/pgxml.sql to .gitignore · 7ffb4d6c
      Robert Haas authored
      Kevin Grittner
      7ffb4d6c
    • Tom Lane's avatar
      ProcessIncomingNotify *must* reset notifyInterruptOccurred when called. · c825a157
      Tom Lane authored
      This was broken in 9.0 by careless addition of an early-exit path.
      Bug report and diagnosis by Jeff Davis.
      c825a157
    • Tom Lane's avatar
      Prevent show_session_authorization from crashing when session_authorization · f73ccedc
      Tom Lane authored
      hasn't been set.
      
      The only known case where this can happen is when show_session_authorization
      is invoked in an autovacuum process, which is possible if an index function
      calls it, as for example in bug #5669 from Andrew Geery.  We could perhaps
      try to return a sensible value, such as the name of the cluster-owning
      superuser; but that seems like much more trouble than the case is worth,
      and in any case it could create new possible failure modes.  Simply
      returning an empty string seems like the most appropriate fix.
      
      Back-patch to all supported versions, even those before autovacuum, just
      in case there's another way to provoke this crash.
      f73ccedc
    • Tom Lane's avatar
      Avoid sharing subpath list structure when flattening nested AppendRels. · b74ecb91
      Tom Lane authored
      In some situations the original coding led to corrupting the child AppendRel's
      subpaths list, effectively adding other members of the parent's list to it.
      This was usually masked because we never made any further use of the child's
      list, but given the right combination of circumstances, we could do so.  The
      visible symptom would be a relation getting scanned twice, as in bug #5673
      from David Schmitt.
      
      Backpatch to 8.2, which is as far back as the risky coding appears.  The
      example submitted by David only fails in 8.4 and later, but I'm not convinced
      that there aren't any even-more-obscure cases where 8.2 and 8.3 would fail.
      b74ecb91
    • Heikki Linnakangas's avatar
      Initialize tableoid field correctly when dumping foreign data wrappers and · 0e6519e1
      Heikki Linnakangas authored
      servers. AFAICT it's harmless at the moment because nothing can depend on
      either, but as soon as we introduce an object type with such dependencies,
      tableoid needs to be set or pg_dump will fail to interpret the dependencies
      correctly. In theory, I guess the uninitialized garbage in tableoid could
      cause the object to be mistaken for some other object with same OID as well.
      0e6519e1
    • Tom Lane's avatar
      Re-allow input of Julian dates prior to 0001-01-01 AD. · 6f664c1a
      Tom Lane authored
      This was unintentionally broken in 8.4 while tightening up checking of
      ordinary non-Julian date inputs to forbid references to "year zero".
      Per bug #5672 from Benjamin Gigot.
      6f664c1a
  8. Sep 22, 2010
  9. Sep 21, 2010
  10. Sep 17, 2010
Loading