summaryrefslogtreecommitdiff
path: root/source3/nmbd/nmbd_serverlistdb.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>1998-08-30 04:27:26 +0000
committerAndrew Tridgell <tridge@samba.org>1998-08-30 04:27:26 +0000
commit1778debff146423e3543d40c2fe8413a34888a27 (patch)
tree41119cab58d30a359cd0082ddf3a3ab86e93932b /source3/nmbd/nmbd_serverlistdb.c
parent48514704c2825bcde8bed3b92255ba2abcb955b4 (diff)
downloadsamba-1778debff146423e3543d40c2fe8413a34888a27.tar.gz
samba-1778debff146423e3543d40c2fe8413a34888a27.tar.bz2
samba-1778debff146423e3543d40c2fe8413a34888a27.zip
added some defensive programming to nmbd. This mostly means zeroing
areas of memory before freeing them. While doing this I also found a couple of real bugs. In two places we were freeing some memory that came from the stack, which leads to a certain core dump on many sytems. (This used to be commit c5e5c25c854e54f59291057ba47c4701b5910ebe)
Diffstat (limited to 'source3/nmbd/nmbd_serverlistdb.c')
-rw-r--r--source3/nmbd/nmbd_serverlistdb.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/source3/nmbd/nmbd_serverlistdb.c b/source3/nmbd/nmbd_serverlistdb.c
index 6ff6ad5c5d..a4dab6f419 100644
--- a/source3/nmbd/nmbd_serverlistdb.c
+++ b/source3/nmbd/nmbd_serverlistdb.c
@@ -56,6 +56,7 @@ void remove_all_servers(struct work_record *work)
if (work->serverlist == servrec)
work->serverlist = servrec->next;
+ ZERO_STRUCTP(servrec);
free((char *)servrec);
}
@@ -120,6 +121,7 @@ void remove_server_from_workgroup(struct work_record *work, struct server_record
if (work->serverlist == servrec)
work->serverlist = servrec->next;
+ ZERO_STRUCTP(servrec);
free((char *)servrec);
work->subnet->work_changed = True;
}