mateodx / pulledpork

Automatically exported from code.google.com/p/pulledpork
GNU General Public License v2.0
0 stars 0 forks source link

Error "Type of arg 1 to keys must be hash (not hash element)" #127

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Checkout revision 254 or later from SVN
2. Try and run PulledPork

What is the expected output? What do you see instead?

An error is generated:

{{{
#> ./pulledpork.pl -c /etc/pulledpork/pulledpork.conf
Type of arg 1 to keys must be hash (not hash element) at 
/opt/pulledpork/pulledpork.pl line 1171, near "})"
BEGIN not safe after errors--compilation aborted at 
/opt/pulledpork/pulledpork.pl line 1778.
}}}

Under r253 this works as expected:

{{{
#> ./pulledpork.pl -c /etc/pulledpork/pulledpork.conf

    http://code.google.com/p/pulledpork/
      _____ ____
     `----,\    )
      `--==\\  /    PulledPork v0.6.2dev the Cigar Pig <////~
       `--==\\/
     .-~~~~-.Y|\\_  Copyright (C) 2009-2012 JJ Cummings
  @_/        /  66\_  cummingsj@gmail.com
    |    \   \   _(")
     \   /-| ||'--'  Rules give me wings!
      \_\  \_\\

...snip... }}}

What version of the product are you using? On what operating system?

Subversion revision 254 or later.

CentOS 6.3 x64, Perl 5.10.1

Please provide any additional information below.

The issue was introduced in revision 254, revisions 253 and earlier work as expected.


Original issue reported on code.google.com by `thwp...@gmail.com` on 7 Feb 2013 at 2:37
GoogleCodeExporter commented 8 years ago
Same here

Original comment by digital...@gmail.com on 21 Feb 2013 at 5:16

GoogleCodeExporter commented 8 years ago
I have similar problem on a FreeBSD 8.2 (amd 64) with Perl 5, version 12 BUT 
NOT on FreeBSD 9.0 (amd 64) with Perl 5, version 14.

Both of the above are with revision 255.

Original comment by idei...@gmail.com on 14 Mar 2013 at 10:08

GoogleCodeExporter commented 8 years ago
This is follow up to comment #2 - I use the same conf file for both machines, 
one works and one does not.

Original comment by idei...@gmail.com on 15 Mar 2013 at 1:09

GoogleCodeExporter commented 8 years ago
Dev's suggestion at the mailing list to upgrade Perl fixed it for me.
https://groups.google.com/d/msg/pulledpork-users/nlINYv-OQeA/nRvlE9teIPMJ

Original comment by rhuang.w...@gmail.com on 15 Mar 2013 at 11:59

GoogleCodeExporter commented 8 years ago
same issue.
PulledPork v0.6.2dev
Ubuntu 10.04.4 LTS 
Linux 2.6.32-31-server #61-Ubuntu SMP Fri Apr 8 19:44:42 UTC 2011 x86_64

initial failure with default perl via apt-update of perl 5.10.1

tried to upgrade perl as per recommend via perlbrew. installed perl-5.16.3, 
verified w/ perl -v

same failure:
root@Indifference:~/perl5/perlbrew/build/perl-5.10.1#  pulledpork.pl -c 
/etc/snort/pulledpork.conf  
Type of arg 1 to keys must be hash (not hash element) at 
/usr/local/bin/pulledpork.pl line 1171, near "})"
BEGIN not safe after errors--compilation aborted at 
/usr/local/bin/pulledpork.pl line 1778.

as i'm new to pp, never had it run ok before, so thought it was my config. not 
using an oinkid, so all those commented. since have commented blacklist and all 
other rule urls. have set release to my machine's. don't see a solution w/o 
reviewing/modifying source. think u got a bug. why was a dev version the 
default download anyway??!?!?

-freshpork

Original comment by mar...@gmail.com on 21 Mar 2013 at 5:56

GoogleCodeExporter commented 8 years ago
to clarify #5, by default DL, i mean I googled pp, got your G.code page, 
clicked source, then followed the instructions:

# Non-members may check out a read-only working copy anonymously over HTTP.
svn checkout http://pulledpork.googlecode.com/svn/trunk/ pulledpork-read-only

---
to clarifiy #0, initial post's comment of:The issue was introduced in revision 
254, revisions 253 and earlier work as expected.

I have since did a:
wget https://pulledpork.googlecode.com/svn-history/r253/trunk/pulledpork.pl

replaced it in /usr/local/bin/pulledpork.pl, chmodded as a+x

yet:
/usr/local/bin/pulledpork.pl -c /etc/snort/pulledpork.conf 
yeilds:
Type of arg 1 to keys must be hash (not hash element) at 
/usr/local/bin/pulledpork.pl line 1171, near "})"
BEGIN not safe after errors--compilation aborted at 
/usr/local/bin/pulledpork.pl line 1778.

verify:
perl -v
This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux

Original comment by mar...@gmail.com on 21 Mar 2013 at 6:10

GoogleCodeExporter commented 8 years ago
Right on the main page:

You can always grab the latest development snapshot, though I make no 
guarantees as to it's stability ;-) svn checkout 
http://pulledpork.googlecode.com/svn/trunk/ pulledpork-read-only

The release tarball is NOT a development version.  We appreciate you helping 
beta test, but it is clearly stated that SVN contains the latest development 
code.

I'll be committing some more code later today, don't know if it will fix your 
issues, as I can't reproduce your issue but...

Original comment by Cummin...@gmail.com on 21 Mar 2013 at 2:33

GoogleCodeExporter commented 8 years ago
So I just grabbed the latest svn (rev 262) and am running it on CentOS 6.3, 
perl 5.10.1 and using the same values from my working 0.6.1 pp conf, I get the 
same error.

pulledpork.pl
Type of arg 1 to keys must be hash (not hash element) at 
/usr/local/bin/pulledpork.pl line 1179, near "})"
BEGIN not safe after errors--compilation aborted at 
/usr/local/bin/pulledpork.pl line 1787.

Original comment by jth...@gmail.com on 11 Apr 2013 at 8:01

GoogleCodeExporter commented 8 years ago
I get this error as well, with todays release. v262

perl -v - perl, v5.10.1
VERSION = "PulledPork v0.6.2dev the Cigar Pig <////~";

I did as described on the main page:
svn checkout http://pulledpork.googlecode.com/svn/trunk/ pulledpork-read-only

then just moved the pulledpork.pl to /usr/local/bin and the conf files are in 
/etc/snort/*.conf

Original comment by Rika...@gmail.com on 26 Apr 2013 at 2:42

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
I have not had much time to track it down, but I am able to reproduce this on 
older perl releases.. 5.10 for example.. when I update said version to 5.12 it 
works.. again, I don't have the details but it's clearly something in the base 
perl build

Original comment by Cummin...@gmail.com on 30 May 2013 at 4:02

GoogleCodeExporter commented 8 years ago
I get the same error. Perl v5.12.4, pulledpork r262

Original comment by pasha....@gmail.com on 2 Jun 2013 at 1:22

GoogleCodeExporter commented 8 years ago
There is clearly some base PM that some distribution are updating with various 
versions of perl.. I can reliably fix this by updating perl on FreeBSD and 
Ubuntu..

example, working fine on FreeBSD:
perl 5, version 12, subversion 3 (v5.12.3) built for i386-freebsd-64int

Original comment by Cummin...@gmail.com on 11 Jul 2013 at 4:59

GoogleCodeExporter commented 8 years ago
Correct.. but RH/Cent's policy is to keep a mainline version of something until 
the next major release.  so for those people using RH and CentOS.. we will just 
have to either install a new version from somewhere else and hope it doesn't 
break anything, or do a separate install into another folder just for this tool.

Original comment by jth...@gmail.com on 11 Jul 2013 at 5:11

GoogleCodeExporter commented 8 years ago
I just changed line 1165 of revision r267 from

foreach my $k2 ( sort keys $$hashref{$k}){

to 

foreach my $k2 ( sort keys %{$$hashref{$k}}){

and the issue looks solved. I'm no perl guru (output approx 10 lines per annum) 
so someone who uses perl on a daily basis should look closely at my proposed 
fix!

Support for automatic derefencing of hashrefs was added in Perl 5.14 so any 
version before that (everyone on RHEL6/5 or CentOS 6/5) will see this bug.  

Cheers,
   Chris

Original comment by tampin.c...@gmail.com on 22 Aug 2013 at 11:24

GoogleCodeExporter commented 8 years ago
Well that works to fix the earlier errors, nice job!

Original comment by jth...@gmail.com on 22 Aug 2013 at 11:35

GoogleCodeExporter commented 8 years ago
I tried to suggest a patch in the "Source" section but keep getting HTTP 400 - 
Your client has issued a malformed or illegal request. Looks like the only way 
to get the change into the code base is if one of the developers notices my 
previous comment.

Cheers,  
   Chris

Original comment by tampin.c...@gmail.com on 23 Aug 2013 at 12:11

GoogleCodeExporter commented 8 years ago
managed to submit the patch! 

Original comment by tampin.c...@gmail.com on 23 Aug 2013 at 5:16

GoogleCodeExporter commented 8 years ago

Original comment by Cummin...@gmail.com on 11 Sep 2013 at 9:06