char *ptr;
switch_status_t status = SWITCH_STATUS_SUCCESS;
- request = switch_core_alloc(listener->pool, SKINNY_MESSAGE_MAXSIZE);
+ request = calloc(SKINNY_MESSAGE_MAXSIZE,1);
if (!request) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Unable to allocate memory.\n");
while (listener_is_ready(listener)) {
uint8_t do_sleep = 1;
if (listener->expire_time && listener->expire_time < switch_epoch_time_now(NULL)) {
+ switch_safe_free(request);
return SWITCH_STATUS_TIMEOUT;
}
if(bytes < SKINNY_MESSAGE_FIELD_SIZE) {
status = switch_socket_recv(listener->sock, ptr, &mlen);
if (listener->expire_time && listener->expire_time < switch_epoch_time_now(NULL)) {
+ switch_safe_free(request);
return SWITCH_STATUS_TIMEOUT;
}
}
if (!switch_status_is_timeup(status) && !SWITCH_STATUS_IS_BREAK(status) && (status != SWITCH_STATUS_SUCCESS)) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Socket break with status=%d.\n", status);
+ switch_safe_free(request);
return SWITCH_STATUS_FALSE;
}
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR,
"Skinny client sent invalid data. Length should be greater than 4 but got %d.\n",
request->length);
+ switch_safe_free(request);
return SWITCH_STATUS_FALSE;
}
if(request->length + 2*SKINNY_MESSAGE_FIELD_SIZE > SKINNY_MESSAGE_MAXSIZE) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR,
"Skinny client sent too huge data. Got %d which is above threshold %d.\n",
request->length, SKINNY_MESSAGE_MAXSIZE - 2*SKINNY_MESSAGE_FIELD_SIZE);
+ switch_safe_free(request);
return SWITCH_STATUS_FALSE;
}
if(bytes >= request->length + 2*SKINNY_MESSAGE_FIELD_SIZE) {
/* Message body */
*req = request;
+ /* Do not free here, caller needs to do it */
return SWITCH_STATUS_SUCCESS;
}
}
switch_cond_next();
}
}
+
+ switch_safe_free(request);
return SWITCH_STATUS_SUCCESS;
}
}
i = 0;
pos = 0;
- codec_string = switch_core_alloc(listener->pool, string_len+1);
+ codec_string = calloc(string_len+1,1);
+ if ( !codec_string ) {
+ skinny_log_l_msg(listener, SWITCH_LOG_ERROR, "Unable to allocate memory for codec string.\n");
+ return SWITCH_STATUS_FALSE;
+ }
for (string_pos = 0; string_pos < string_len; string_pos++) {
char *codec = codec_order[i];
switch_assert(i < n);
switch_safe_free(sql);
}
skinny_log_l(listener, SWITCH_LOG_DEBUG, "Codecs %s supported.\n", codec_string);
+ switch_safe_free(codec_string);
return SWITCH_STATUS_SUCCESS;
}