diff options
-rw-r--r-- | source3/include/smb_macros.h | 24 | ||||
-rw-r--r-- | source3/lib/util.c | 6 | ||||
-rw-r--r-- | source3/libaddns/dns.h | 24 | ||||
-rw-r--r-- | source3/rpc_parse/parse_prs.c | 2 |
4 files changed, 51 insertions, 5 deletions
diff --git a/source3/include/smb_macros.h b/source3/include/smb_macros.h index 85b623af01..c85e6e0ea0 100644 --- a/source3/include/smb_macros.h +++ b/source3/include/smb_macros.h @@ -275,6 +275,11 @@ copy an IP address from one buffer to another /* The new talloc is paranoid malloc checker safe. */ +#if 0 + +Disable these now we've checked all code paths and ensured +NULL returns on zero request. JRA. + #define TALLOC(ctx, size) talloc_zeronull(ctx, size, __location__) #define TALLOC_P(ctx, type) (type *)talloc_zeronull(ctx, sizeof(type), #type) #define TALLOC_ARRAY(ctx, type, count) (type *)_talloc_array_zeronull(ctx, sizeof(type), count, #type) @@ -282,12 +287,27 @@ copy an IP address from one buffer to another #define TALLOC_ZERO(ctx, size) _talloc_zero_zeronull(ctx, size, __location__) #define TALLOC_ZERO_P(ctx, type) (type *)_talloc_zero_zeronull(ctx, sizeof(type), #type) #define TALLOC_ZERO_ARRAY(ctx, type, count) (type *)_talloc_zero_array_zeronull(ctx, sizeof(type), count, #type) +#define TALLOC_SIZE(ctx, size) talloc_zeronull(ctx, size, __location__) +#define TALLOC_ZERO_SIZE(ctx, size) _talloc_zero_zeronull(ctx, size, __location__) + +#else + +#define TALLOC(ctx, size) talloc_named_const(ctx, size, __location__) +#define TALLOC_P(ctx, type) (type *)talloc_named_const(ctx, sizeof(type), #type) +#define TALLOC_ARRAY(ctx, type, count) (type *)_talloc_array(ctx, sizeof(type), count, #type) +#define TALLOC_MEMDUP(ctx, ptr, size) _talloc_memdup(ctx, ptr, size, __location__) +#define TALLOC_ZERO(ctx, size) _talloc_zero(ctx, size, __location__) +#define TALLOC_ZERO_P(ctx, type) (type *)_talloc_zero(ctx, sizeof(type), #type) +#define TALLOC_ZERO_ARRAY(ctx, type, count) (type *)_talloc_zero_array(ctx, sizeof(type), count, #type) +#define TALLOC_SIZE(ctx, size) talloc(ctx, size, __location__) +#define TALLOC_ZERO_SIZE(ctx, size) _talloc_zero(ctx, size, __location__) + +#endif + #define TALLOC_REALLOC(ctx, ptr, count) _talloc_realloc(ctx, ptr, count, __location__) #define TALLOC_REALLOC_ARRAY(ctx, ptr, type, count) (type *)_talloc_realloc_array(ctx, ptr, sizeof(type), count, #type) #define talloc_destroy(ctx) talloc_free(ctx) #define TALLOC_FREE(ctx) do { if ((ctx) != NULL) {talloc_free(ctx); ctx=NULL;} } while(0) -#define TALLOC_SIZE(ctx, size) talloc_zeronull(ctx, size, __location__) -#define TALLOC_ZERO_SIZE(ctx, size) _talloc_zero_zeronull(ctx, size, __location__) /* only define PARANOID_MALLOC_CHECKER with --enable-developer and not compiling the smbmount utils */ diff --git a/source3/lib/util.c b/source3/lib/util.c index 25b60dc9ef..ed2bff6225 100644 --- a/source3/lib/util.c +++ b/source3/lib/util.c @@ -3314,6 +3314,11 @@ int get_safe_IVAL(const char *buf_base, size_t buf_len, char *ptr, size_t off, i return IVAL(ptr,off); } +#if 0 + +Disable these now we've checked all code paths and ensured +NULL returns on zero request. JRA. + /**************************************************************** talloc wrapper functions that guarentee a null pointer return if size == 0. @@ -3412,3 +3417,4 @@ void *talloc_zeronull(const void *context, size_t size, const char *name) } return talloc_named_const(context, size, name); } +#endif diff --git a/source3/libaddns/dns.h b/source3/libaddns/dns.h index 894a46b35f..21dc52ac77 100644 --- a/source3/libaddns/dns.h +++ b/source3/libaddns/dns.h @@ -86,6 +86,11 @@ #include <talloc.h> +#if 0 + +Disable these now we've checked all code paths and ensured +NULL returns on zero request. JRA. + void *_talloc_zero_zeronull(const void *ctx, size_t size, const char *name); void *_talloc_memdup_zeronull(const void *t, const void *p, size_t size, const char *name); void *_talloc_array_zeronull(const void *ctx, size_t el_size, unsigned count, const char *name); @@ -99,12 +104,27 @@ void *talloc_zeronull(const void *context, size_t size, const char *name); #define TALLOC_ZERO(ctx, size) _talloc_zero_zeronull(ctx, size, __location__) #define TALLOC_ZERO_P(ctx, type) (type *)_talloc_zero_zeronull(ctx, sizeof(type), #type) #define TALLOC_ZERO_ARRAY(ctx, type, count) (type *)_talloc_zero_array_zeronull(ctx, sizeof(type), count, #type) +#define TALLOC_SIZE(ctx, size) talloc_zeronull(ctx, size, __location__) +#define TALLOC_ZERO_SIZE(ctx, size) _talloc_zero_zeronull(ctx, size, __location__) + +#else + +#define TALLOC(ctx, size) talloc_named_const(ctx, size, __location__) +#define TALLOC_P(ctx, type) (type *)talloc_named_const(ctx, sizeof(type), #type) +#define TALLOC_ARRAY(ctx, type, count) (type *)_talloc_array(ctx, sizeof(type), count, #type) +#define TALLOC_MEMDUP(ctx, ptr, size) _talloc_memdup(ctx, ptr, size, __location__) +#define TALLOC_ZERO(ctx, size) _talloc_zero(ctx, size, __location__) +#define TALLOC_ZERO_P(ctx, type) (type *)_talloc_zero(ctx, sizeof(type), #type) +#define TALLOC_ZERO_ARRAY(ctx, type, count) (type *)_talloc_zero_array(ctx, sizeof(type), count, #type) +#define TALLOC_SIZE(ctx, size) talloc(ctx, size, __location__) +#define TALLOC_ZERO_SIZE(ctx, size) _talloc_zero(ctx, size, __location__) + +#endif + #define TALLOC_REALLOC(ctx, ptr, count) _talloc_realloc(ctx, ptr, count, __location__) #define TALLOC_REALLOC_ARRAY(ctx, ptr, type, count) (type *)_talloc_realloc_array(ctx, ptr, sizeof(type), count, #type) #define talloc_destroy(ctx) talloc_free(ctx) #define TALLOC_FREE(ctx) do { if ((ctx) != NULL) {talloc_free(ctx); ctx=NULL;} } while(0) -#define TALLOC_SIZE(ctx, size) talloc_zeronull(ctx, size, __location__) -#define TALLOC_ZERO_SIZE(ctx, size) _talloc_zero_zeronull(ctx, size, __location__) /******************************************************************* Type definitions for int16, int32, uint16 and uint32. Needed diff --git a/source3/rpc_parse/parse_prs.c b/source3/rpc_parse/parse_prs.c index c51e1dff4a..3c1b200ebc 100644 --- a/source3/rpc_parse/parse_prs.c +++ b/source3/rpc_parse/parse_prs.c @@ -161,7 +161,7 @@ char *prs_alloc_mem(prs_struct *ps, size_t size, unsigned int count) if (size && count) { /* We can't call the type-safe version here. */ - ret = (char *)_talloc_zero_array_zeronull(ps->mem_ctx, size, count, + ret = (char *)_talloc_zero_array(ps->mem_ctx, size, count, "parse_prs"); } return ret; |