#git:slp/pkgs/v/vmodem-daemon-emulator
Name: vmodemd-emul
-Version: 0.2.29
+Version: 0.2.30
Release: 1
Summary: Modem Emulator
Group: System/ModemEmulator
STATE next;
number = malloc(MAX_GSM_DIALED_DIGITS_NUM);
+ if(!number)
+ return -1;
TRACE(MSGL_VGSM_INFO, "\n");
char* call_data = strchr((char*)p, 'D');
char token[] = ";";
oem_tx_call_gen_resp(AT_CME_ERR_OPER_NOT_ALLOWED);
+ if(number)
+ free(number);
return 1;
}
oem_tx_call_gen_resp(AT_GEN_ERR_NO_ERROR);
data[0] = call_id;
data[1] = call_type;
- if(clir_status == GSM_CALL_CLIR_STATUS_INVOCATION)
- num_len = 0;
+ // On this path, the condition "clir_status == GSM_CALL_CLIR_STATUS_INVOCATION" cannot be true.
+ // Because clir_status = GSM_CALL_STATUS_DIALING;
+ //if(clir_status == GSM_CALL_CLIR_STATUS_INVOCATION)
+ // num_len = 0;
data[2] = num_len;
data[3] = clir_status;
set_state_machine( next );
send_msg();
}
+ if(number)
+ free(number);
return 1;
}
TAPIMessageInit(&packet);
data = malloc(sizeof(char)*1);
+ if(!data)
+ return 0;
ret = strtok(tdata+1, TOKEN);
if(ret)
data[0] = atoi(ret); /* 0: stop, 1: start */
- else
+ else {
+ free(data);
return 0;
+ }
ret = strtok(NULL, TOKEN);
if(ret)
len = 1+(plmn_list->num_record*10);
data = malloc(len);
+ if(!data)
+ return 0;
data[n++] = plmn_list->num_record; /* NUM_RECORD */
sprintf(sndbuf, "%s", COPS);
{
cnt++;//mode
pb= malloc(sizeof(PB));
+ if(!pb)
+ return -1;
memset(pb,0,(sizeof(PB)));
add_len=p[cnt];
case 0x02://DELETE
{
pb= malloc(sizeof(PB));
+ if(pb == NULL)
+ return -1;
memset(pb,0,(sizeof(PB)));
add_len=p[cnt];
TAPIMessageInit(&packet);
call_forwarding_entry_t * entry = malloc(sizeof(call_forwarding_entry_t));
+ if(!entry)
+ return -1;
memset(entry, 0, sizeof(call_forwarding_entry_t));
entry->ss_mode = ss_mode;
int cb_pwd_fail_count = 0;
call_barring_entry_t * entry = malloc(sizeof(call_barring_entry_t));
+ if(!entry)
+ return -1;
memset(entry, 0, sizeof(call_barring_entry_t));
entry->type =cb_type;
int server_rx_ss_cb_passwd_set(char* curr_passwd, char* new_passwd)
{
VGSM_DEBUG("\n");
+ if(!curr_passwd || !new_passwd)
+ return -1
int gen_resp_err;
LXT_MESSAGE packet;
packet.data = new_passwd;
packet.group = GSM_SUPS;
packet.action = GSM_SUPS_PWDSET_CB_REQ;
- packet.length = sizeof(new_passwd);
+ packet.length = strlen(new_passwd);
VGSM_DEBUG("CallBarring Passwd changed\n");
LXT_MESSAGE packet;
gsm_call_list_t * callList = malloc(sizeof(gsm_call_list_t));
+ if(!callList)
+ return -1;
get_prev_state_machine( &prev );
int at_stat = change_stat_for_at(callList->CallInfo[get_call_id()].stat);
TRACE(MSGL_VGSM_INFO, "call id:%d, orignal stat: %d, send stat: %d\n", get_call_id(), callList->CallInfo[get_call_id()].stat, at_stat);
- if(callList->CallInfo[get_call_id()].number)
+ if(strcmp(callList->CallInfo[get_call_id()].number, ""))
{
sprintf((char*)pdata, "%d,%d,%d,%d,%d,%s,%d", get_call_id() + 1, change_dir_for_at(callList->CallInfo[get_call_id()].dir),
at_stat, AT_CALL_MODE_VOICE, AT_CALL_MPTY_FALSE,