r16642: Fix show-stopper bug #3876. Double-free in wins
authorJeremy Allison <jra@samba.org>
Wed, 28 Jun 2006 20:39:07 +0000 (20:39 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 16:19:05 +0000 (11:19 -0500)
server code. Jerry please merge for 3.0.23.
Jeremy.
(This used to be commit d354b430ff0473764db8ea492a68d10946dadc23)

source3/nmbd/nmbd_winsserver.c

index 29d5c41de821952a747e4593412f6a7ab281ab3d..86f7fd58502852af3ca0c259aa1ec4918400045c 100644 (file)
@@ -76,6 +76,7 @@ static struct name_record *wins_record_to_name_record(TDB_DATA key, TDB_DATA dat
        if (!namerec) {
                return NULL;
        }
+       ZERO_STRUCTP(namerec);
 
        namerec->data.ip = SMB_MALLOC_ARRAY(struct in_addr, num_ips);
        if (!namerec->data.ip) {
@@ -294,7 +295,6 @@ BOOL remove_name_from_wins_namelist(struct name_record *namerec)
        ret = tdb_delete(wins_tdb, key);
 
        DLIST_REMOVE(wins_server_subnet->namelist, namerec);
-       SAFE_FREE(namerec->data.ip);
 
        /* namerec must be freed by the caller */