summaryrefslogtreecommitdiff
path: root/source4/lib/util
diff options
context:
space:
mode:
authorKai Blin <kai@samba.org>2008-03-21 22:27:02 +0100
committerKai Blin <kai@samba.org>2008-04-02 23:05:44 +0200
commit2d12b275f38fe2785c9ae389cc987269a232b5a8 (patch)
tree5380728d644b6fc2630fd3b1c28d92c4e59894c3 /source4/lib/util
parent753824e9cfcbba51a2157eb75cc9ff9b287028fa (diff)
downloadsamba-2d12b275f38fe2785c9ae389cc987269a232b5a8.tar.gz
samba-2d12b275f38fe2785c9ae389cc987269a232b5a8.tar.bz2
samba-2d12b275f38fe2785c9ae389cc987269a232b5a8.zip
util: Add talloc_get_type_abort() call.
(This used to be commit 38413ed4b6957e5f72e78a04f479c6a5d8b69ef5)
Diffstat (limited to 'source4/lib/util')
-rw-r--r--source4/lib/util/util.c15
-rw-r--r--source4/lib/util/util.h7
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_ */