update for nessus on x86_64

"Gene C." <[email protected]>
Newsgroups gmane.comp.security.nessus.devel
Message-ID <[email protected]>
I have submitted a number of bugzilla reports with associated patches for 
getting nessus to compile/build/run as a 64 bit application on the x86_64 
(Opteron).  These include:

libnasl: http://bugs.nessus.org/show_bug.cgi?id=734
nessus-libraries: http://bugs.nessus.org/show_bug.cgi?id=735
nessus-core: http://bugs.nessus.org/show_bug.cgi?id=736
nessus-plugins: http://bugs.nessus.org/show_bug.cgi?id=737

The patches fix problems with type, prototype, cast, etc. on the x86_64 
(AMD64).  This code has been build and run on a i386 (Fedora Core 1) system 
to ensure that it does not cause problems.

In addition, the following three bug fixes have been submitted:

1. http://bugs.nessus.org/show_bug.cgi?id=738  On both amd64 and i386 systems, 
if a null (empty) port range is specified (passed to) nmap_tcp_connect.nes, 
then a SEGV occurs because a null pointer is used.  NOTE: A similar problem 
with nmap_wrapper.nes exists but it does not cause a problem.

2.  http://bugs.nessus.org/show_bug.cgi?id=739  where the wrong sruct is used 
to calulate a length ... the result is a SEGV on AMD64.  On i386 systems, the 
old and new structs used have the same size.

3.  http://bugs.nessus.org/show_bug.cgi?id=740 where if mmap returns an error 
code (not a valid pointer), then an invlid pointer results in a SEGV.

The nessus client built on the x86_64 system seems to work OK for now ... I 
ran it with a server on an i386 box and it had the same results as running on 
an i386.

There are still pointer/case/type problems with both the libnasl and nessus 
versions of regex.  With the large define-macros used, this is going to take 
some effort to identify and fix.  I noticed that the SUSE folks ignored this.

The server code (libnessus, libnasl, nessusd, nessus-plugins) is still not 
working right on the AMD64 -- I am getting lots or error messages about 
memory allocation errors (mainly malloc and mmap) when I run on the AMD64 
system but not when I do an identical test on the i386.

The errors are faily repeatable which is a bit strange ... especially for the 
mmap calls.  Now mmap does not fail every time (it fact it mostly works).  
When it does fail, it seems to fail for the same files every time --  for 
example /usr/lib64/nessus/plugins/.desc/libwhisker_settings.desc.   I took 
the code from libnessus/services.c and created a small test program ... it 
never fails.

Suggestion:  It would be more useful if more than just the occurance of an 
error (e.g., using perror("mmap")) was done when an error occurs.  Additional 
information would be helpful.  I am adding printf statements myself to get 
that information.
-- 
Gene

_______________________________________________
Nessus-devel mailing list
[email protected]
http://mail.nessus.org/mailman/listinfo/nessus-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.