summaryrefslogtreecommitdiff
path: root/source/nmbd/nmbd_become_lmb.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>1998-01-09 05:33:27 +0000
committerJeremy Allison <jra@samba.org>1998-01-09 05:33:27 +0000
commit4c8af3bc9f43b2427609cbeecb7940b1753a9a1c (patch)
treeddf402f5765fb62d31889aad87b7e70e8ccc2c99 /source/nmbd/nmbd_become_lmb.c
parent2e9f4b5daa74484cbc8c3dc929ab3ae42d663f9f (diff)
downloadsamba-4c8af3bc9f43b2427609cbeecb7940b1753a9a1c.tar.gz
docs/Support.txt: Removed consultant.
source/Makefile: Added Volker's comment. source/nmbd_become_lmb.c: source/nmbd_browsesync.c: source/nmbd_incomingdgrams.c: Fixed userdata alignment problems. source/mem_man/mem_man.c: source/mem_man/mem_man.h: added smb_ prefix to stop namespace collisions. Jeremy.
Diffstat (limited to 'source/nmbd/nmbd_become_lmb.c')
-rw-r--r--source/nmbd/nmbd_become_lmb.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/source/nmbd/nmbd_become_lmb.c b/source/nmbd/nmbd_become_lmb.c
index 2d9f2cce553..7bfd558003a 100644
--- a/source/nmbd/nmbd_become_lmb.c
+++ b/source/nmbd/nmbd_become_lmb.c
@@ -248,7 +248,6 @@ void unbecome_local_master_browser(struct subnet_record *subrec, struct work_rec
struct name_record *namerec;
struct nmb_name nmbname;
struct userdata_struct *userdata;
- char ud[sizeof(struct userdata_struct) + sizeof(fstring)+1];
/* Sanity check. */
@@ -268,9 +267,11 @@ in workgroup %s on subnet %s\n",
work->mst_state = MST_UNBECOMING_MASTER;
/* Setup the userdata for the MSBROWSE name release. */
- /* Setup the userdata_struct - this is copied so we can use
- a stack variable for this. */
- userdata = (struct userdata_struct *)ud;
+ if((userdata = (struct userdata_struct *)malloc( sizeof(struct userdata_struct) + sizeof(fstring)+1)) == NULL)
+ {
+ DEBUG(0,("unbecome_local_master_browser: malloc fail.\n"));
+ return;
+ }
userdata->copy_fn = NULL;
userdata->free_fn = NULL;
@@ -286,6 +287,8 @@ in workgroup %s on subnet %s\n",
release_msbrowse_name_fail,
userdata);
}
+
+ free((char *)userdata);
}
/****************************************************************************
@@ -481,7 +484,6 @@ void become_local_master_browser(struct subnet_record *subrec, struct work_recor
{
struct server_record *servrec;
struct userdata_struct *userdata;
- char ud[sizeof(struct userdata_struct) + sizeof(fstring)+1];
/* Sanity check. */
if (!lp_local_master())
@@ -516,9 +518,12 @@ in workgroup %s on subnet %s\n",
/* Tell the namelist writer to write out a change. */
subrec->work_changed = True;
- /* Setup the userdata_struct - this is copied so we can use
- a stack variable for this. */
- userdata = (struct userdata_struct *)ud;
+ /* Setup the userdata_struct. */
+ if((userdata = (struct userdata_struct *)malloc(sizeof(struct userdata_struct) + sizeof(fstring)+1)) == NULL)
+ {
+ DEBUG(0,("become_local_master_browser: malloc fail.\n"));
+ return;
+ }
userdata->copy_fn = NULL;
userdata->free_fn = NULL;
@@ -530,6 +535,8 @@ in workgroup %s on subnet %s\n",
become_local_master_stage1,
become_local_master_fail1,
userdata);
+
+ free((char *)userdata);
}
/***************************************************************