Mailing List Archive

update for nessus on x86_64
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
Re: update for nessus on x86_64 [ In reply to ]
On Mon, Jan 19, 2004 at 12:38:55PM -0500, Gene C. wrote:
> 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:

Thanks. I won't be include your patches right away because they are
linux specific, but I'll try to integrate them portably.


-- Renaud
Re: update for nessus on x86_64 [ In reply to ]
On Monday 19 January 2004 14:39, Renaud Deraison wrote:
> On Mon, Jan 19, 2004 at 12:38:55PM -0500, Gene C. wrote:
> > 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:
>
> Thanks. I won't be include your patches right away because they are
> linux specific, but I'll try to integrate them portably.

Agreed ... but if you did not know that there was a problem in something, then
you would not know were to look.

The biggest problem with the pointer casts/types/etc is with the regex code
... trying to figure out just where the problem is in the large define-macro
(especially with the nested macros) is very difficult.
--
Gene