diff options
author | Bruce Momjian <bruce@momjian.us> | 2006-07-06 02:03:00 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2006-07-06 02:03:00 +0000 |
commit | acf40f39be47cd92ff394e9c42f9ffa4dfd741ed (patch) | |
tree | 745cdb62a1ec179a376381183e6aed62b721b741 | |
parent | 33215c2b7827eb61860d0b9d9f7b3ee63f4c6537 (diff) | |
download | postgresql-acf40f39be47cd92ff394e9c42f9ffa4dfd741ed.tar.gz postgresql-acf40f39be47cd92ff394e9c42f9ffa4dfd741ed.zip |
Fix dbmirror for new backslash escaping:
Martin Pitt [2006-06-16 0:15 +0200]:
> Upstream confirmed my reply in the last mail in [1]: the complete
> escaping logic in DBMirror.pl is seriously screwew.
>
> [1] http://archives.postgresql.org/pgsql-bugs/2006-06/msg00065.php
I finally found some time to debug this, and I think I found a better
patch than the one you proposed. Mine is still hackish and is still a
workaround around a proper quoting solution, but at least it repairs
the parsing without introducing the \' quoting again.
I consider this a band-aid patch to fix the recent security update.
PostgreSQL gurus, would you consider applying this until a better
solution is found for DBMirror.pl?
Martin Pitt http://www.piware.de
-rwxr-xr-x | contrib/dbmirror/DBMirror.pl | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/contrib/dbmirror/DBMirror.pl b/contrib/dbmirror/DBMirror.pl index cdeafc59da8..04d8167a08a 100755 --- a/contrib/dbmirror/DBMirror.pl +++ b/contrib/dbmirror/DBMirror.pl @@ -33,7 +33,7 @@ # # ############################################################################## -# $PostgreSQL: pgsql/contrib/dbmirror/DBMirror.pl,v 1.10.4.1 2006/05/21 19:57:38 momjian Exp $ +# $PostgreSQL: pgsql/contrib/dbmirror/DBMirror.pl,v 1.10.4.2 2006/07/06 02:03:00 momjian Exp $ # ############################################################################## @@ -907,7 +907,7 @@ sub extractData($$) { $matchString = $1; $value .= substr $matchString,0,length($matchString)-1; - if($matchString =~ m/(\'$)/s) { + if($matchString =~ m/(\'$)/s and (substr $dataField,length($matchString),1) ne "'") { # $1 runs to the end of the field value. $dataField = substr $dataField,length($matchString)+1; last; |