summaryrefslogtreecommitdiff
path: root/source3/nmbd/nmbd_namelistdb.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_namelistdb.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_namelistdb.c')
-rw-r--r--source3/nmbd/nmbd_namelistdb.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/source3/nmbd/nmbd_namelistdb.c b/source3/nmbd/nmbd_namelistdb.c
index 29d822550c..de5835a115 100644
--- a/source3/nmbd/nmbd_namelistdb.c
+++ b/source3/nmbd/nmbd_namelistdb.c
@@ -111,6 +111,8 @@ void remove_name_from_namelist( struct subnet_record *subrec,
if(namerec->data.ip != NULL)
free((char *)namerec->data.ip);
+
+ ZERO_STRUCTP(namerec);
free((char *)namerec);
subrec->namelist_changed = True;
@@ -218,6 +220,8 @@ struct name_record *add_name_to_subnet( struct subnet_record *subrec,
if( NULL == namerec->data.ip )
{
DEBUG( 0, ( "add_name_to_subnet: malloc fail when creating ip_flgs.\n" ) );
+
+ ZERO_STRUCTP(namerec);
free( (char *)namerec );
return NULL;
}