nessus crash on x86_64
Alexander Tsvyashchenko <[email protected]> Sun, 06 May 2007 19:14:45 +0300
| Newsgroups | gmane.comp.security.nessus.devel |
|---|---|
| Message-ID | <[email protected]> |
Hello Jose,
I have exactly the same issue you've described (found your post while =20
googling for my problem).
Your report was really helpful, as using it, I was able quickly to =20
localize the problem: basically, it seems that va_start should be =20
called not once, but before each invocation of vsnprintf, to reset =20
''param'' to the appropriate value - I do not know why this was not =20
noticed before, probably, default buffer size is enough in all but =20
very extreme cases. In my configuration it happened only once per =20
nessus run that the loop was repeated - when formatting string with =20
plugins numbers, it seems (about 85,000 bytes length) - but it was =20
enough for crash.
I do not have time to dig into it too much, but the following patch =20
has solved my crash and allowed me to execute nessus successfully on =20
my system. If you have not fixed the problem yourselves yet, you can =20
try it - I hope, it will work for you also!
diff -urN nessus-core/nessus/auth.c nessus-core.patched/nessus/auth.c
--- nessus-core/nessus/auth.c 2006-09-26 20:32:12.000000000 +0300
+++ nessus-core.patched/nessus/auth.c 2007-05-06 02:05:30.000000000 +0300
@@ -92,11 +92,11 @@
char * buffer =3D emalloc(s);
int len, n =3D 0;
signal(SIGPIPE, sighand_pipe);
- va_start(param, data);
for(;;)
{
+ va_start(param, data);
r =3D vsnprintf(buffer, s - 1, data, param);
if(r >=3D 0 && r < s)break;
s =3D r > s ? r + 2 : s * 2;
Good luck! Alexander
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
_______________________________________________
Nessus-devel mailing list
[email protected]
http://mail.nessus.org/mailman/listinfo/nessus-devel