*/
SWITCH_DECLARE(int) switch_split_user_domain(char *in, char **user, char **domain);
+SWITCH_DECLARE(void *) switch_calloc(size_t nmemb, size_t size);
+
+#ifdef __clang_analyzer__
+#define calloc switch_calloc
+#endif
+
/* malloc or DIE macros */
#ifdef NDEBUG
#define switch_malloc(ptr, len) (void)( (!!(ptr = malloc(len))) || (fprintf(stderr,"ABORT! Malloc failure at: %s:%d", __FILE__, __LINE__),abort(), 0), ptr )
subclass->owner = DUP(owner);
subclass->name = DUP(subclass_name);
- switch_core_hash_insert(CUSTOM_HASH, subclass->name, subclass);
+ status = switch_core_hash_insert(CUSTOM_HASH, subclass->name, subclass);
+
+ if (status != SWITCH_STATUS_SUCCESS) {
+ free(subclass->owner);
+ free(subclass->name);
+ free(subclass);
+ }
end:
char *name;
};
+SWITCH_DECLARE(void *) switch_calloc(size_t nmemb, size_t size)
+{
+ return calloc(nmemb, size);
+}
+
#ifndef WIN32
SWITCH_DECLARE(int) switch_inet_pton(int af, const char *src, void *dst)
{