Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit a7aa0b8

Browse files
committed
Backpatch dbmirror fix for escape handling.
> 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? Olivier, can you please confirm that the patch works for you, too? Backpatched to 8.0.X. Martin Pitt
1 parent 4f4d62a commit a7aa0b8

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

contrib/dbmirror/DBMirror.pl

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
#
3434
#
3535
##############################################################################
36-
# $PostgreSQL: pgsql/contrib/dbmirror/DBMirror.pl,v 1.11 2006/05/19 02:38:47 momjian Exp $
36+
# $PostgreSQL: pgsql/contrib/dbmirror/DBMirror.pl,v 1.12 2006/07/06 01:57:25 momjian Exp $
3737
#
3838
##############################################################################
3939

@@ -907,7 +907,7 @@ ($$)
907907
$matchString = $1;
908908
$value .= substr $matchString,0,length($matchString)-1;
909909

910-
if($matchString =~ m/(\'$)/s) {
910+
if($matchString =~ m/(\'$)/s and (substr $dataField,length($matchString),1) ne "'") {
911911
# $1 runs to the end of the field value.
912912
$dataField = substr $dataField,length($matchString)+1;
913913
last;

0 commit comments

Comments
 (0)