int *a;
call_waiting_entry_t * entry = malloc(sizeof(call_waiting_entry_t));
+ if(!entry)
+ return;
memset(entry, 0, sizeof(call_waiting_entry_t));
TRACE(MSGL_VGSM_SS,"\n");
vgsm_ss_database_add(SS_CMD_CW, entry);
init_ss_info_re(); // restore data list in EI
+
+ if(entry)
+ free(entry);
}
void server_tx_ss_cf_set_req ( LXT_MESSAGE *packet)
int *a;
call_forwarding_entry_t * entry = malloc(sizeof(call_forwarding_entry_t));
+ if(!entry)
+ return;
memset(entry, 0, sizeof(call_forwarding_entry_t));
TRACE(MSGL_VGSM_SS,"\n");
vgsm_ss_database_add(SS_CMD_CF, entry);
init_ss_info_re(); // restore data list in EI
+
+ if(entry)
+ free(entry);
}
void server_tx_ss_cb_set_req ( LXT_MESSAGE *packet)
int *a;
call_barring_entry_t * entry = malloc(sizeof(call_barring_entry_t));
+ if(!entry)
+ return;
memset(entry, 0, sizeof(call_barring_entry_t));
TRACE(MSGL_VGSM_SS,"\n");
vgsm_ss_database_add(SS_CMD_CB, entry);
init_ss_info_re(); // restore data list in EI
+
+ if(entry)
+ free(entry);
}
get_call_list( &list );
call_id = get_call_id();
length = 8 + list.CallInfo[call_id].num_len;
- data = malloc(sizeof(unsigned char)*length);
- memset( data, 0, sizeof(unsigned char)*length );
-
+
if( list.CallCount <= 0 )
return 0;
return 0;
}
+ data = malloc(sizeof(unsigned char)*length);
+ if(!data)
+ return -1;
+ memset( data, 0, sizeof(unsigned char)*length );
+
switch( type ) {
case SS_STATE_HOLD:
data[0] = 0x61; // GSM_SS_INFO_CALL_ON_HOLD
break;
default:
+ free(data);
return 0;
}