From 8ca531ca72ddffcc3561813bdd2f12f07b5911ce Mon Sep 17 00:00:00 2001 From: Mark Wells Date: Mon, 9 Jul 2012 17:02:49 -0700 Subject: [PATCH] stop upgrade from corrupting message templates, #18406 --- FS/FS/msg_template.pm | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/FS/FS/msg_template.pm b/FS/FS/msg_template.pm index ffb4f52fb..cac7fe572 100644 --- a/FS/FS/msg_template.pm +++ b/FS/FS/msg_template.pm @@ -678,10 +678,20 @@ sub _upgrade_data { if ( $msg_template->subject || $msg_template->body ) { # create new default content my %content; - foreach ('subject','body') { - $content{$_} = $msg_template->$_; - $msg_template->setfield($_, ''); + $content{subject} = $msg_template->subject; + $msg_template->set('subject', ''); + + # work around obscure Pg/DBD bug + # https://rt.cpan.org/Public/Bug/Display.html?id=60200 + # (though the right fix is to upgrade DBD) + my $body = $msg_template->body; + if ( $body =~ /^x([0-9a-f]+)$/ ) { + # there should be no real message templates that look like that + warn "converting template body to TEXT\n"; + $body = pack('H*', $1); } + $content{body} = $body; + $msg_template->set('body', ''); my $error = $msg_template->replace(%content); die $error if $error; -- 2.11.0