diff options
author | Kai Blin <kai@samba.org> | 2008-03-21 22:27:02 +0100 |
---|---|---|
committer | Kai Blin <kai@samba.org> | 2008-04-02 23:05:44 +0200 |
commit | 2d12b275f38fe2785c9ae389cc987269a232b5a8 (patch) | |
tree | 5380728d644b6fc2630fd3b1c28d92c4e59894c3 | |
parent | 753824e9cfcbba51a2157eb75cc9ff9b287028fa (diff) | |
download | samba-2d12b275f38fe2785c9ae389cc987269a232b5a8.tar.gz samba-2d12b275f38fe2785c9ae389cc987269a232b5a8.tar.bz2 samba-2d12b275f38fe2785c9ae389cc987269a232b5a8.zip |
util: Add talloc_get_type_abort() call.
(This used to be commit 38413ed4b6957e5f72e78a04f479c6a5d8b69ef5)
-rw-r--r-- | source4/lib/util/util.c | 15 | ||||
-rw-r--r-- | source4/lib/util/util.h | 7 |
2 files changed, 22 insertions, 0 deletions
diff --git a/source4/lib/util/util.c b/source4/lib/util/util.c index 7b6bfeeb7b..b5bb75358e 100644 --- a/source4/lib/util/util.c +++ b/source4/lib/util/util.c @@ -582,3 +582,18 @@ _PUBLIC_ void *realloc_array(void *ptr, size_t el_size, unsigned count) return realloc(ptr, el_size * count); } +_PUBLIC_ void *talloc_check_name_abort(const void *ptr, const char *name) +{ + void *result; + + result = talloc_check_name(ptr, name); + if (result != NULL) + return result; + + DEBUG(0, ("Talloc type mismatch, expected %s, got %s\n", + name, talloc_get_name(ptr))); + smb_panic("talloc type mismatch"); + /* Keep the compiler happy */ + return NULL; +} + diff --git a/source4/lib/util/util.h b/source4/lib/util/util.h index 60c8437634..3bf6b98d2f 100644 --- a/source4/lib/util/util.h +++ b/source4/lib/util/util.h @@ -803,4 +803,11 @@ bool pm_process( const char *fileName, bool (*pfunc)(const char *, const char *, void *), void *userdata); +/** + * Add-on to talloc_get_type + */ +_PUBLIC_ void *talloc_check_name_abort(const void *ptr, const char *name); +#define talloc_get_type_abort(ptr, type) \ + (type *)talloc_check_name_abort(ptr, #type) + #endif /* _SAMBA_UTIL_H_ */ |