In modules/rtpengine/rtpengine_hash.c:

> +	LM_DBG("rtpengine_hash_table size = %d\n", hash_table_size);
> +
> +	// init hashtable
> +	rtpengine_hash_table = shm_malloc(sizeof(struct rtpengine_hash_table));
> +	if (!rtpengine_hash_table) {
> +		LM_ERR("no shm left to create rtpengine_hash_table\n");
> +		return 0;
> +	}
> +	memset(rtpengine_hash_table, 0, sizeof(struct rtpengine_hash_table));
> +	rtpengine_hash_table->size = hash_table_size;
> +
> +	// init hashtable row_entry_list
> +	rtpengine_hash_table->row_entry_list = shm_malloc(rtpengine_hash_table->size * sizeof(struct rtpengine_hash_entry*));
> +	if (!rtpengine_hash_table->row_entry_list) {
> +		LM_ERR("no shm left to create rtpengine_hash_table->row_entry_list\n");
> +		rtpengine_hash_table_destroy();

Right. The _destroy() should do sanity checking, with memory free, when possible. Will correct this.


Reply to this email directly or view it on GitHub.