Bug 6426 - [review] "Use of uninitialized value in pattern match" warnings
Summary: [review] "Use of uninitialized value in pattern match" warnings
Status: RESOLVED FIXED
Alias: None
Product: Spamassassin
Classification: Unclassified
Component: spamassassin (show other bugs)
Version: 3.3.1
Hardware: PC FreeBSD
: P2 normal
Target Milestone: 3.4.0
Assignee: SpamAssassin Developer Mailing List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-04-29 05:57 UTC by Bas Zoetekouw
Modified: 2011-05-23 23:08 UTC (History)
1 user (show)



Attachment Type Modified Status Actions Submitter/CLA Status

Note You need to log in before you can comment on or make changes to this bug.
Description Bas Zoetekouw 2010-04-29 05:57:37 UTC
I gt a lot of these error messages in my mail.log:

Apr 29 11:24:12 aegir spamd[1103]: Use of uninitialized value in pattern match (m//) at /usr/local/lib/perl5/site_perl/5.8.9/Mail/SpamAssassin/Plugin/URIDNSBL.pm line 925, <GEN7455> line 124. 

Line 925 is the following:
    next if ($tflags->{$rulename} =~ /\b(?:ips_only|domains_only)\b/);

so it seems $tflags->{$rulename} does not exist.
Debugging show that the rule triggering the error is a user-created rule, which indeed does not declare any tflags.

I propose to change the code to:

    next if (exists $tflags->{$rulename} and $tflags->{$rulename} =~ /\b(?:ips_only|domains_only)\b/);

to fix the problem.  Alternatively, you could add a warning when reading the user prefs, telling the user to add a tflags line to his rule.
Comment 1 Mark Martinec 2011-05-19 14:03:51 UTC
Sure, can't hurt, +1

trunk:
  Bug 6426: "Use of uninitialized value in pattern match" warnings'
  Sending lib/Mail/SpamAssassin/Plugin/URIDNSBL.pm
Committed revision 1124798.
Comment 2 Darxus 2011-05-23 19:41:58 UTC
Close.

Already committed to target.
Comment 3 Mark Martinec 2011-05-23 23:08:59 UTC
Closing.