Fix issue with not escaping profile display email address.

        Patch by rat. 

diffs (48 lines):

diff -r fe18f5fe4113 -r 0c901a3e684a bin/upgrading/en.dat
--- a/bin/upgrading/en.dat      Sat Aug 08 15:16:42 2009 +0000
+++ b/bin/upgrading/en.dat      Sat Aug 08 18:04:44 2009 +0000
@@ -2741,6 +2741,8 @@ setting.randompaidgifts.option.paid=If y
 
 setting.randompaidgifts.option.note=You may receive a paid account from 
someone you do not know.
 
+setting.profileemail.error.email.invalid=Invalid email address entered.
+
 setting.safesearch.error.invalid=Invalid safe search setting.
 
 setting.safesearch.label=Safe Search Filter
diff -r fe18f5fe4113 -r 0c901a3e684a cgi-bin/DW/Setting/ProfileEmail.pm
--- a/cgi-bin/DW/Setting/ProfileEmail.pm        Sat Aug 08 15:16:42 2009 +0000
+++ b/cgi-bin/DW/Setting/ProfileEmail.pm        Sat Aug 08 18:04:44 2009 +0000
@@ -57,7 +57,17 @@ sub save {
     my $email = $class->get_arg( $args, "email" );
     $email = LJ::trim( $email || "" );
 
-    $u->profile_email( $email );
+    # ensure a valid email address is given.
+    my @errors;
+    if ( $email ) {
+        LJ::check_email( $email, \...@errors );
+    }
+
+    if ( @errors ) {
+        $class->errors( "email" => $class->ml( 
'setting.profileemail.error.email.invalid' ) ) ;
+    } else {
+        $u->profile_email( $email );
+    }
 
     return 1;
 }
diff -r fe18f5fe4113 -r 0c901a3e684a htdocs/userinfo.bml
--- a/htdocs/userinfo.bml       Sat Aug 08 15:16:42 2009 +0000
+++ b/htdocs/userinfo.bml       Sat Aug 08 18:04:44 2009 +0000
@@ -176,7 +176,9 @@ body<=
             return qq(<a href="$l->{url}">$l->{text}</a>) if $l->{url};
             return $l->{text};
         } elsif ( $l->{email} ) {
-            return LJ::mangle_email_address( $l->{email} );
+            # the ehtml call here shouldn't be necessary, but just in case 
they slip in an email
+            # that contains Bad Stuff, escape it
+            return LJ::mangle_email_address( LJ::ehtml( $l->{email} ) );
         } else {
             return "(Error in Linkification)";
         }
_______________________________________________
dw-changelog mailing list
[email protected]
http://lists.dwscoalition.org/mailman/listinfo/dw-changelog

Reply via email to