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.
AMERICA - USA 36
ASIA 1
AUSTRALIA & NEW ZEALAND 18
- CANADA 9
+ CANADA 8
EUROPE 36
MIDDLE EAST 1
\f
Legacy UNIX System integration using Samba.
------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-ONTARIO - CANADA
-
- Bilyana Aleksic |Email: baleksic@atitech.ca |
- | |
-ATI Technologies Inc. |Phone: 905-882-2600 x3179 |
-75 Tiverton Court |Fax : 905-475-3930 |
-Unionville, Ontario | |
-Canada, L3R 9S3 | |
-------------------------------------------------------------------------------
-
------------------------------------------------------------------------------
ONTARIO - CANADA
/*The following definitions come from mem_man/mem_man.c */
-void *mem_malloc(size_t size,char *file,int line);
-char *mem_strdup(char *s, char *file, int line);
-int mem_free(void *ptr,char *file,int line);
-void mem_write_info(void *ptr,FILE *outfile);
-char *mem_query_file(void *ptr);
-int mem_query_line(void *ptr);
-int mem_test(void *ptr);
-void mem_write_status(FILE *outfile);
-void mem_write_verbose(FILE *outfile);
-void mem_write_errors(FILE *outfile);
-void mem_set_multiplier(int multiplier);
-void *mem_resize(void *ptr,size_t newsize);
+void *smb_mem_malloc(size_t size,char *file,int line);
+char *smb_mem_strdup(char *s, char *file, int line);
+int smb_mem_free(void *ptr,char *file,int line);
+void smb_mem_write_info(void *ptr,FILE *outfile);
+char *smb_mem_query_file(void *ptr);
+int smb_mem_query_line(void *ptr);
+int smb_mem_test(void *ptr);
+void smb_mem_write_status(FILE *outfile);
+void smb_mem_write_verbose(FILE *outfile);
+void smb_mem_write_errors(FILE *outfile);
+void smb_mem_set_multiplier(int multiplier);
+void *smb_mem_resize(void *ptr,size_t newsize);
/*The following definitions come from message.c */
struct name_record *namerec;
struct nmb_name nmbname;
struct userdata_struct *userdata;
- char ud[sizeof(struct userdata_struct) + sizeof(fstring)+1];
/* Sanity check. */
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;
release_msbrowse_name_fail,
userdata);
}
+
+ free((char *)userdata);
}
/****************************************************************************
{
struct server_record *servrec;
struct userdata_struct *userdata;
- char ud[sizeof(struct userdata_struct) + sizeof(fstring)+1];
/* Sanity check. */
if (!lp_local_master())
/* 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;
become_local_master_stage1,
become_local_master_fail1,
userdata);
+
+ free((char *)userdata);
}
/***************************************************************
struct work_record *work;
struct nmb_name nmbname;
struct userdata_struct *userdata;
- char ud[sizeof(struct userdata_struct) + sizeof(fstring)+1];
if (!(work = find_workgroup_on_subnet(subrec, q_name->name))) {
DEBUG(0, ("find_domain_master_name_query_success: failed to find \
/* 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, ("find_domain_master_name_query_success: malloc fail.\n"));
+ return;
+ }
userdata->copy_fn = NULL;
userdata->free_fn = NULL;
domain_master_node_status_success,
domain_master_node_status_fail,
userdata);
+
+ free((char *)userdata);
}
/****************************************************************************
{
char outbuf[1024];
char *p, *countptr, *nameptr;
- int count = 0;
+ unsigned int count = 0;
int len;
struct server_record *servrec;
if((sizeof(outbuf) - len) < 16)
break;
- if(count >= max_number_requested)
+ if(count >= (unsigned int)max_number_requested)
break;
if(strnequal(servrec->serv.name, myname,15))