<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/postgresql.git, branch REL8_4_5</title>
<subtitle>git.postgresql.org: git/postgresql.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/postgresql.git/'/>
<entry>
<title>Tag 8.4.5</title>
<updated>2010-10-01T13:35:31+00:00</updated>
<author>
<name>Marc G. Fournier</name>
<email>scrappy@hub.org</email>
</author>
<published>2010-10-01T13:35:31+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/postgresql.git/commit/?id=2f76a4b5a6bcefa03f5a4d377cfb449fd5d95185'/>
<id>2f76a4b5a6bcefa03f5a4d377cfb449fd5d95185</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use a separate interpreter for each calling SQL userid in plperl and pltcl.</title>
<updated>2010-09-30T21:20:25+00:00</updated>
<author>
<name>Tom Lane</name>
<email>tgl@sss.pgh.pa.us</email>
</author>
<published>2010-09-30T21:20:25+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/postgresql.git/commit/?id=b805be2587972c153dbc047dc2cc74edef92a36d'/>
<id>b805be2587972c153dbc047dc2cc74edef92a36d</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>Translation updates for 8.4.5</title>
<updated>2010-09-30T20:31:19+00:00</updated>
<author>
<name>Peter Eisentraut</name>
<email>peter_e@gmx.net</email>
</author>
<published>2010-09-30T20:31:19+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/postgresql.git/commit/?id=1100d1eaffb26948d1080968ccaab57f698fc9d9'/>
<id>1100d1eaffb26948d1080968ccaab57f698fc9d9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update release notes for releases 9.0.1, 8.4.5, 8.3.12, 8.2.18, 8.1.22,</title>
<updated>2010-09-30T18:27:36+00:00</updated>
<author>
<name>Tom Lane</name>
<email>tgl@sss.pgh.pa.us</email>
</author>
<published>2010-09-30T18:27:36+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/postgresql.git/commit/?id=b8ba9a26398af814c7ea30d14bda136a2eb29244'/>
<id>b8ba9a26398af814c7ea30d14bda136a2eb29244</id>
<content type='text'>
8.0.26, and 7.4.30.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
8.0.26, and 7.4.30.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix another small oversight in command_no_begin patch.</title>
<updated>2010-09-28T18:48:32+00:00</updated>
<author>
<name>Tom Lane</name>
<email>tgl@sss.pgh.pa.us</email>
</author>
<published>2010-09-28T18:47:25+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/postgresql.git/commit/?id=e8b57bacacb8ddaaab3e832fc374c85b55f59b99'/>
<id>e8b57bacacb8ddaaab3e832fc374c85b55f59b99</id>
<content type='text'>
Need a "return false" to prevent tests from continuing after we've moved
the "query" pointer.  As it stood, it'd accept "DROP DISCARD ALL" as a
match.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Need a "return false" to prevent tests from continuing after we've moved
the "query" pointer.  As it stood, it'd accept "DROP DISCARD ALL" as a
match.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix PlaceHolderVar mechanism's interaction with outer joins.</title>
<updated>2010-09-28T18:15:42+00:00</updated>
<author>
<name>Tom Lane</name>
<email>tgl@sss.pgh.pa.us</email>
</author>
<published>2010-09-28T18:15:42+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/postgresql.git/commit/?id=dc9cc887b74bfa0d40829c4df66dead509fdd8f6'/>
<id>dc9cc887b74bfa0d40829c4df66dead509fdd8f6</id>
<content type='text'>
The point of a PlaceHolderVar is to allow a non-strict expression to be
evaluated below an outer join, after which its value bubbles up like a Var
and can be forced to NULL when the outer join's semantics require that.
However, there was a serious design oversight in that, namely that we
didn't ensure that there was actually a correct place in the plan tree
to evaluate the placeholder :-(.  It may be necessary to delay evaluation
of an outer join to ensure that a placeholder that should be evaluated
below the join can be evaluated there.  Per recent bug report from Kirill
Simonov.

Back-patch to 8.4 where the PlaceHolderVar mechanism was introduced.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The point of a PlaceHolderVar is to allow a non-strict expression to be
evaluated below an outer join, after which its value bubbles up like a Var
and can be forced to NULL when the outer join's semantics require that.
However, there was a serious design oversight in that, namely that we
didn't ensure that there was actually a correct place in the plan tree
to evaluate the placeholder :-(.  It may be necessary to delay evaluation
of an outer join to ensure that a placeholder that should be evaluated
below the join can be evaluated there.  Per recent bug report from Kirill
Simonov.

Back-patch to 8.4 where the PlaceHolderVar mechanism was introduced.
</pre>
</div>
</content>
</entry>
<entry>
<title>Only DISCARD ALL should be in the command_no_begin list.</title>
<updated>2010-09-28T06:57:19+00:00</updated>
<author>
<name>Itagaki Takahiro</name>
<email>itagaki.takahiro@gmail.com</email>
</author>
<published>2010-09-28T06:57:19+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/postgresql.git/commit/?id=2dc2ea81f67b96473cefe8fc7d515bda37255660'/>
<id>2dc2ea81f67b96473cefe8fc7d515bda37255660</id>
<content type='text'>
We allowes DISCARD PLANS and TEMP in a transaction.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We allowes DISCARD PLANS and TEMP in a transaction.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add DISCARD to the command_no_begin list for AUTOCOMMIT=off.</title>
<updated>2010-09-28T05:26:03+00:00</updated>
<author>
<name>Itagaki Takahiro</name>
<email>itagaki.takahiro@gmail.com</email>
</author>
<published>2010-09-28T05:26:03+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/postgresql.git/commit/?id=b66c4fb322b21a57c0b05cd3bd89c49def654eae'/>
<id>b66c4fb322b21a57c0b05cd3bd89c49def654eae</id>
<content type='text'>
Backpatch to 8.3.

Reported by Sergey Burladyan.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Backpatch to 8.3.

Reported by Sergey Burladyan.
</pre>
</div>
</content>
</entry>
<entry>
<title>Further fixes to the pg_get_expr() security fix in back branches.</title>
<updated>2010-09-25T20:02:32+00:00</updated>
<author>
<name>Tom Lane</name>
<email>tgl@sss.pgh.pa.us</email>
</author>
<published>2010-09-25T19:57:05+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/postgresql.git/commit/?id=78b0a0d8c026d20788b584266c2aef5f5add16b2'/>
<id>78b0a0d8c026d20788b584266c2aef5f5add16b2</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Still more .gitignore cleanup.</title>
<updated>2010-09-24T17:48:26+00:00</updated>
<author>
<name>Tom Lane</name>
<email>tgl@sss.pgh.pa.us</email>
</author>
<published>2010-09-24T17:48:26+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/postgresql.git/commit/?id=76833aeab9f12768204078eedeac4e539986ac07'/>
<id>76833aeab9f12768204078eedeac4e539986ac07</id>
<content type='text'>
Fix overly-enthusiastic ignores, as identified by
git ls-files -i --exclude-standard
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix overly-enthusiastic ignores, as identified by
git ls-files -i --exclude-standard
</pre>
</div>
</content>
</entry>
</feed>
