Honeypots mailing list archives

Re: honeyd on Solaris 9


From: "gangadhar npk" <phani () myrealbox com>
Date: Sun, 03 Jul 2005 13:52:23 +0530

Just a thought.
To confirm that libdnet might be causing problem, can you please try with writing a simple test case using libdnet 
which does an intf_open() on any of the interfaces.
I don't have access to a solaris box currently, but I will also try it. Do share your results.
Best regards
Gangadhar

-----Original Message-----
From: Tobias Hahn <tobi_wan () gmx de>
To: honeypots () securityfocus com
Date: Fri, 01 Jul 2005 08:28:33 +0200
Subject: honeyd on Solaris 9

Hi,

I started debugging honeyd wit gdb and I think I found at least one
reason why it's not working like I want it to. I compared the Solaris
debugging output with the Suse 9.2 debugging output and this is what I got:

===SuseLinux9.2=========>>>>=========================
3106            interface_initialize(honeyd_recv_cb);
(gdb) step
interface_initialize (cb=0x81a64c0) at interface.c:83
83              TAILQ_INIT(&interfaces);
(gdb)
85              if ((intf = intf_open()) == NULL)
(gdb)
intf_open () at intf.c:123
123             if ((intf = calloc(1, sizeof(*intf))) != NULL) {
(gdb)
124                     intf->fd = intf->fd6 = -1;
(gdb)
126                     if ((intf->fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
(gdb)
137             return (intf);
========================<<<<=========================



===Solaris9=============>>>>=========================
3109            interface_initialize(honeyd_recv_cb);
(gdb)
interface_initialize (cb=0x1ef8c <honeyd_recv_cb>) at interface.c:83
83              TAILQ_INIT(&interfaces);
(gdb)
85              if ((intf = intf_open()) == NULL)
(gdb)
86                      err(1, "intf_open");
(gdb)
85              if ((intf = intf_open()) == NULL)
(gdb)
88              if_recv_cb = cb;
(gdb)
========================<<<<=========================

It seems to me that on Solaris there is a problem with opening the
interface. intf_open() belongs to intf.c, which is one of the libdnet
files.

honeyd always ends just after

3205:fprintf(stderr, "Honeyd starting as background process\n");
3206:    if (daemon(1, 0) < 0) {
3207:        unlink(PIDFILE);
3208:        err(1, "daemon");
3209:    }

line 3206 is the last one the gdb shows.

I would really appreciate if somebody could help me with any of this.

Thanks in advance,
     Tobias








Current thread: