Merge branch 'master' into tizen_2.0
authorSooyoung Ha <yoosah.ha@samsung.com>
Sat, 12 Jan 2013 13:55:47 +0000 (22:55 +0900)
committerSooyoung Ha <yoosah.ha@samsung.com>
Sat, 12 Jan 2013 13:55:47 +0000 (22:55 +0900)
packaging/vmodemd-emul.spec
vmodem/server/server_rx_call.c
vmodem/server/server_rx_gprs.c
vmodem/server/server_rx_network.c
vmodem/server/server_rx_phonebook.c
vmodem/server/server_rx_ss.c
vmodem/server/server_tx_call.c

index 8bc3890..ab250ac 100644 (file)
@@ -1,6 +1,6 @@
 #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
index 8dca6de..a5551bc 100644 (file)
@@ -101,6 +101,8 @@ int server_rx_call_originate_exec(void *ptr_data, int data_len )
        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[] = ";";
@@ -136,6 +138,8 @@ int server_rx_call_originate_exec(void *ptr_data, int data_len )
 
                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);
@@ -151,8 +155,10 @@ int server_rx_call_originate_exec(void *ptr_data, int data_len )
        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;
@@ -189,6 +195,8 @@ int server_rx_call_originate_exec(void *ptr_data, int data_len )
                set_state_machine( next );
                send_msg();
        }
+       if(number)
+               free(number);
        return 1;
 }
 
index 97d88e3..b9267cc 100644 (file)
@@ -122,11 +122,15 @@ int server_rx_gprs_SetPSActDeact(void *ptr_data, int data_len )
                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)
index 8fecd07..cc49fc6 100644 (file)
@@ -62,6 +62,8 @@ int server_rx_net_plmn_list_get(void)
 
        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);
index 82f4eb3..391c7de 100644 (file)
@@ -120,6 +120,8 @@ int server_rx_sim_pb_set_access_req(void* ptr_data, int data_len)
                        {
                                cnt++;//mode
                                pb= malloc(sizeof(PB));
+                               if(!pb)
+                                       return -1;
                                memset(pb,0,(sizeof(PB)));
                                add_len=p[cnt];
 
@@ -158,6 +160,8 @@ int server_rx_sim_pb_set_access_req(void* ptr_data, int data_len)
                        case 0x02://DELETE
                        {
                                pb= malloc(sizeof(PB));
+                               if(pb == NULL)
+                                       return -1;
                                memset(pb,0,(sizeof(PB)));
 
                                add_len=p[cnt];
index 91aab57..ba97ac5 100644 (file)
@@ -199,6 +199,8 @@ int server_rx_ss_cf_set(int ss_mode, int type, int tel_class, int replyTime, int
        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;
@@ -312,6 +314,8 @@ int server_rx_ss_cb_set(int cb_type, int ss_mode, int tel_class, char *passwd)
        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;
@@ -446,6 +450,8 @@ int server_rx_ss_cb_set(int cb_type, int ss_mode, int tel_class, char *passwd)
 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;
@@ -490,7 +496,7 @@ int server_rx_ss_cb_passwd_set(char* curr_passwd, char* new_passwd)
        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");
 
index 7b6ea9d..1711f4d 100644 (file)
@@ -87,6 +87,8 @@ int server_tx_call_status(void) // it means call state.
 
        LXT_MESSAGE packet;
        gsm_call_list_t * callList = malloc(sizeof(gsm_call_list_t));
+       if(!callList)
+               return -1;
 
        get_prev_state_machine( &prev );
 
@@ -158,7 +160,7 @@ int server_tx_call_status(void) // it means call state.
        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,