mirror of
https://github.com/samba-team/samba.git
synced 2024-12-24 21:34:56 +03:00
changed the size of a char array in the userdata_struct from 1 to 16
to account for padding/alignment issues. Eventually I'd like to find a
way to get rid of this construct altogether as it is a bit error
prone and hard to debug.
also added a new macro:
ZERO_STRUCTP() that takes a pointer to a structure and zeros the
structure. Used in nmbd to zero allocated structures before freeing
them to try to catch bugs a bit faster.
(This used to be commit d3dda65d51
)
This commit is contained in:
parent
1778debff1
commit
c021867fee
@ -278,7 +278,7 @@ struct userdata_struct {
|
||||
userdata_copy_fn copy_fn;
|
||||
userdata_free_fn free_fn;
|
||||
unsigned int userdata_len;
|
||||
char data[1];
|
||||
char data[16]; /* 16 is to ensure alignment/padding on all systems */
|
||||
};
|
||||
|
||||
struct response_record;
|
||||
|
@ -356,6 +356,7 @@ char *tab_depth(int depth);
|
||||
char *sid_to_string(pstring sidstr_out, DOM_SID *sid);
|
||||
BOOL string_to_sid(DOM_SID *sidout, char *sidstr);
|
||||
int str_checksum(char *s);
|
||||
void zero_free(void *p, int size);
|
||||
|
||||
/*The following definitions come from libsmb/clientgen.c */
|
||||
|
||||
|
@ -1569,8 +1569,17 @@ extern int unix_ERR_code;
|
||||
#define CMD_REPLY 0x8000
|
||||
|
||||
/* useful macros */
|
||||
|
||||
/* zero a structure */
|
||||
#define ZERO_STRUCT(x) memset((char *)&(x), 0, sizeof(x))
|
||||
|
||||
/* zero a structure given a pointer to the structure */
|
||||
#define ZERO_STRUCTP(x) memset((char *)(x), 0, sizeof(*(x)))
|
||||
|
||||
/* zero an array - note that sizeof(array) must work - ie. it must not be a
|
||||
pointer */
|
||||
#define ZERO_ARRAY(x) memset((char *)(x), 0, sizeof(x))
|
||||
|
||||
#define SMB_ASSERT(b) ((b)?(void)0: \
|
||||
(DEBUG(0,("PANIC: assert failed at %s(%d)\n", \
|
||||
__FILE__, __LINE__)), smb_panic("assert failed")))
|
||||
|
Loading…
Reference in New Issue
Block a user