dmgerman / ninka

a license identification tool for Source Code
http://ninka.turingmachine.org
GNU General Public License v2.0
103 stars 30 forks source link

Ninka barfs on test files from Qt with non-ASCII data and is killed #28

Open armijnhemel opened 8 years ago

armijnhemel commented 8 years ago

The test file in the attached ZIP (from Qt 3.3.0) makes Ninka 2.0-pre1 (release) barf and it is killed after taking quite a bit of time:

$ time ./bin/ninka /tmp/aticatac.cpp execution of program [comments -c1 '/tmp/aticatac.cpp' 2> /dev/null] failed: status [137], error [sh: line 1: 23288 Killed comments -c1 '/tmp/aticatac.cpp' 2> /dev/null] at /gpl/ninka/ninka-2.0-pre1/lib/Ninka/CommentExtractor.pm line 76, line 1.

real 0m10.047s user 0m10.042s sys 0m0.010s

qt-test-file.zip

jeremiah commented 8 years ago

I can't reproduce;

sylph.jeremiahfoster.com:~/code/perl/ninka>  time ninka /tmp/aticatac.cpp 
/tmp/aticatac.cpp;UNKNOWN;0;0;0;2;1;Copyright,AllRights,UNKNOWN

real    0m0.096s
user    0m0.088s
sys 0m0.004s
armijnhemel commented 8 years ago

That is odd. On my Fedora 22 system it fails (with the 2.0-pre1 release). The problem occurs in the "comments" program which has not been touched in three years.

In fact, with the 'comments' in Ninka-1.3 it also fails:

$ ./comments /tmp/aticatac.cpp Killed

Do you have the 'comments' directory in your path? If I don't have it in my path it just works, but if it is in my path, it doesn't.

jeremiah commented 8 years ago

No, I don't have comments in my path. I can test by putting the comments program in my path though, is it part of ninka?

armijnhemel commented 8 years ago

Yes it is. It is in the "comments" directory. It is optionally used. In the 'comments' directory in the README it says:

"If Ninka does not find it in the executable path, it will use the first 400 lines from source code, and is likely to reduce the precision of Ninka."

jeremiah commented 8 years ago

Okay, now I can reproduce it;


$  ./comments /tmp/aticatac.cpp 
Killed