fu: Close-up of Fu, bringing a scoop of water to her mouth (Default)
fu ([personal profile] fu) wrote in [site community profile] changelog2010-11-17 06:21 am

[dw-free] Warnings when loading a comment/reply page in site skin

[commit: http://hg.dwscoalition.org/dw-free/rev/fe774f46a075]

http://bugs.dwscoalition.org/show_bug.cgi?id=3236

Hush.

Patch by [personal profile] fu.

Files modified:
  • cgi-bin/LJ/Talk.pm
  • cgi-bin/weblib.pl
  • htdocs/talkread.bml
--------------------------------------------------------------------------------
diff -r 680147b0e586 -r fe774f46a075 cgi-bin/LJ/Talk.pm
--- a/cgi-bin/LJ/Talk.pm	Wed Nov 17 12:42:57 2010 +0800
+++ b/cgi-bin/LJ/Talk.pm	Wed Nov 17 14:20:56 2010 +0800
@@ -84,7 +84,7 @@ sub show_image
 sub show_image
 {
     my ( $pics, $id, $extra ) = @_;
-    return unless defined $pics->{pic}->{$id};
+    return unless defined $id && defined $pics->{pic}->{$id};
 
     my $p = $pics->{pic}->{$id};
     return "<img src='$LJ::IMGPREFIX/talk/$p->{img}' border='0' ".
@@ -185,6 +185,8 @@ sub init
     my $journal = $form->{'journal'};
     my $ju = undef;
     my $item = undef;        # hashref; journal item conversation is in
+
+    $form->{$_} ||= 0 foreach qw( itemid thread replyto );
 
     # defaults, to be changed later:
     $init->{'itemid'} = $form->{'itemid'}+0;
@@ -1292,7 +1294,6 @@ sub talkform {
     # errors:      optional error arrayref
     my $opts = shift;
     return "Invalid talkform values." unless ref $opts eq 'HASH';
-
     my $ret;
     my ($remote, $journalu, $parpost, $form) =
         map { $opts->{$_} } qw(remote journalu parpost form);
@@ -1306,6 +1307,8 @@ sub talkform {
 
     my $pics = LJ::Talk::get_subjecticons();
     my $entry = LJ::Entry->new( $journalu, ditemid => $opts->{ditemid} );
+
+    $form->{$_} ||= "" foreach qw( usertype userpost cookieuser );
 
     # once we clean out talkpost.bml, this will need to be changed.
     BML::set_language_scope('/talkpost.bml');
@@ -3555,7 +3558,7 @@ sub require_captcha_test {
     ## 2. Don't show captcha to the owner of the journal, no more checks
     ##
     if ( !$anon_commenter && $commenter->equals( $journal ) ) {
-        return;
+        return 0;
     }
 
     ##
@@ -3951,7 +3954,7 @@ sub check_rate {
         my ($key, $rates) = ($watch->[0], $watch->[1]);
         my $max_period = $rates->[0]->[1];
 
-        my $log = LJ::MemCache::get($key);
+        my $log = LJ::MemCache::get($key) || "";
 
         # parse the old log
         my @times;
diff -r 680147b0e586 -r fe774f46a075 cgi-bin/weblib.pl
--- a/cgi-bin/weblib.pl	Wed Nov 17 12:42:57 2010 +0800
+++ b/cgi-bin/weblib.pl	Wed Nov 17 14:20:56 2010 +0800
@@ -844,7 +844,7 @@ sub make_qr_link
 
     my $remote = LJ::get_remote();
     unless ( $remote && $remote->prop( "opt_no_quickreply" ) ) {
-        my $pid = int($dtid / 256);
+        my $pid = ( $dtid =~ /^\d+$/) ? int( $dtid / 256 ) : 0;
 
         $basesubject =~ s/^(Re:\s*)*//i;
         $basesubject = "Re: $basesubject" if $basesubject;
diff -r 680147b0e586 -r fe774f46a075 htdocs/talkread.bml
--- a/htdocs/talkread.bml	Wed Nov 17 12:42:57 2010 +0800
+++ b/htdocs/talkread.bml	Wed Nov 17 14:20:56 2010 +0800
@@ -453,13 +453,13 @@ body<=
             $ret .= "<td><img src='$LJ::IMGPREFIX/dot.gif' height='1' width='" . ($opts->{'depth'} * 25) . "'></td>";
             $ret .= "<td>$ML{'.replysuspended'}";
             if (LJ::Talk::can_delete($remote, $u, $up, $userpost)) {
-                $ret .= " <a href='$LJ::SITEROOT/delcomment?${jargent}id=$dtid'>" . LJ::img("btn_del", "", { 'align' => 'absmiddle', 'hspace' => 2, 'vspace' => }) . "</a>";
+                $ret .= " <a href='$LJ::SITEROOT/delcomment?${jargent}id=$dtid'>" . LJ::img("btn_del", "", { align => 'absmiddle', hspace => 2 }) . "</a>";
             }
             if ($post->{state} ne 'F' && LJ::Talk::can_freeze($remote, $u, $up, $userpost)) {
-                $ret .= "<a href='$LJ::SITEROOT/talkscreen?mode=freeze&amp;${jargent}talkid=$dtid'>" . LJ::img("btn_freeze", "", { align => 'absmiddle', hspace => 2, vspace => }) . "</a>";
+                $ret .= "<a href='$LJ::SITEROOT/talkscreen?mode=freeze&amp;${jargent}talkid=$dtid'>" . LJ::img("btn_freeze", "", { align => 'absmiddle', hspace => 2 }) . "</a>";
             }
             if ($post->{state} eq 'F' && LJ::Talk::can_unfreeze($remote, $u, $up, $userpost)) {
-                $ret .= "<a href='$LJ::SITEROOT/talkscreen?mode=unfreeze&amp;${jargent}talkid=$dtid'>" . LJ::img("btn_unfreeze", "", { align => 'absmiddle', hspace => 2, vspace => }) . "</a>";
+                $ret .= "<a href='$LJ::SITEROOT/talkscreen?mode=unfreeze&amp;${jargent}talkid=$dtid'>" . LJ::img("btn_unfreeze", "", { align => 'absmiddle', hspace => 2 }) . "</a>";
             }
             $ret .= "</td></tr></table>\n";
         } else {
@@ -527,31 +527,31 @@ body<=
                 $ret .= LJ::Talk::comment_anchor( $dtid ) . "'>$T{'link'}</a>)</span>";
 
                 if ($comment->remote_can_edit) {
-                    $ret .= "<a href='" . LJ::Talk::talkargs( $comment->edit_url, $style_args ) . "'>" . LJ::img("editcomment", "", { 'align' => 'absmiddle', 'hspace' => 2, 'vspace' => }) . "</a>";
+                    $ret .= "<a href='" . LJ::Talk::talkargs( $comment->edit_url, $style_args ) . "'>" . LJ::img("editcomment", "", { align => 'absmiddle', hspace => 2 }) . "</a>";
                 }
 
                 if (LJ::Talk::can_delete($remote, $u, $up, $userpost)) {
-                    $ret .= "<a href='$LJ::SITEROOT/delcomment?${jargent}id=$dtid'>" . LJ::img("btn_del", "", { 'align' => 'absmiddle', 'hspace' => 2, 'vspace' => }) . "</a>";
+                    $ret .= "<a href='$LJ::SITEROOT/delcomment?${jargent}id=$dtid'>" . LJ::img("btn_del", "", { align => 'absmiddle', hspace => 2 }) . "</a>";
                 }
 
                 if ($post->{'state'} ne 'F' &&
                     LJ::Talk::can_freeze($remote, $u, $up, $userpost)) {
-                    $ret .= "<a href='$LJ::SITEROOT/talkscreen?mode=freeze&amp;${jargent}talkid=$dtid'>" . LJ::img("btn_freeze", "", { align => 'absmiddle', hspace => 2, vspace => }) . "</a>";
+                    $ret .= "<a href='$LJ::SITEROOT/talkscreen?mode=freeze&amp;${jargent}talkid=$dtid'>" . LJ::img("btn_freeze", "", { align => 'absmiddle', hspace => 2 }) . "</a>";
                 }
 
                 if ($post->{'state'} eq 'F' &&
                     LJ::Talk::can_unfreeze($remote, $u, $up, $userpost)) {
-                    $ret .= "<a href='$LJ::SITEROOT/talkscreen?mode=unfreeze&amp;${jargent}talkid=$dtid'>" . LJ::img("btn_unfreeze", "", { align => 'absmiddle', hspace => 2, vspace => }) . "</a>";
+                    $ret .= "<a href='$LJ::SITEROOT/talkscreen?mode=unfreeze&amp;${jargent}talkid=$dtid'>" . LJ::img("btn_unfreeze", "", { align => 'absmiddle', hspace => 2 }) . "</a>";
                 }
 
                 if ($post->{'state'} ne 'S' &&
                     LJ::Talk::can_screen($remote, $u, $up, $userpost)) {
-                    $ret .= "<a href='$LJ::SITEROOT/talkscreen?mode=screen&amp;${jargent}talkid=$dtid'>" . LJ::img("btn_scr", "", { 'align' => 'absmiddle', 'hspace' => 2, 'vspace' => }) . "</a>";
+                    $ret .= "<a href='$LJ::SITEROOT/talkscreen?mode=screen&amp;${jargent}talkid=$dtid'>" . LJ::img("btn_scr", "", { align => 'absmiddle', hspace => 2 }) . "</a>";
                 }
 
                 if ($post->{'state'} eq 'S' &&
                     LJ::Talk::can_unscreen($remote, $u, $up, $userpost)) {
-                    $ret .= "<a href='$LJ::SITEROOT/talkscreen?mode=unscreen&amp;${jargent}talkid=$dtid'>" . LJ::img("btn_unscr", "", { 'align' => 'absmiddle', 'hspace' => 2, 'vspace' => }) . "</a>";
+                    $ret .= "<a href='$LJ::SITEROOT/talkscreen?mode=unscreen&amp;${jargent}talkid=$dtid'>" . LJ::img("btn_unscr", "", { align => 'absmiddle', hspace => 2 }) . "</a>";
                 }
 
                 if ($remote && $remote->can_use_esn) {
--------------------------------------------------------------------------------