[Title] fix prevent defect on libvmodem/libvgsm_sat.c
authorSooyoung Ha <yoosah.ha@samsung.com>
Wed, 9 Jan 2013 16:55:33 +0000 (01:55 +0900)
committerSooyoung Ha <yoosah.ha@samsung.com>
Wed, 9 Jan 2013 16:55:33 +0000 (01:55 +0900)
[Desc.] Resource leak, null check
[Issue] Prevent CID 33811~7, 33901~6

libvmodem/libvgsm_sat.c

index d7d3545..e6bcebb 100644 (file)
@@ -69,14 +69,16 @@ int vgsm_sat_display_text(LXT_HANDLE * handle,char priority,char  clear_msg,char
 {
        printf("\n vgsm_sat_display_text\n");
 
+       if( handle == NULL )
+               return -1;
+
        DP_TEXT *dp_text;
-       dp_text = malloc(sizeof(DP_TEXT));
        int ret;
 
-       memset(dp_text,0,sizeof(DP_TEXT));
-
-       if( handle == NULL )
+       dp_text = malloc(sizeof(DP_TEXT));
+       if(!dp_text)
                return -1;
+       memset(dp_text,0,sizeof(DP_TEXT));
 
        dp_text->priority                               =       priority;
        dp_text->clear_msg                      =       clear_msg;
@@ -111,14 +113,16 @@ int vgsm_sat_get_inkey(LXT_HANDLE * handle,char cmd_detail,char* textstring,char
 {
        printf("\n vgsm_sat_get_inkey\n");
 
+       if( handle == NULL )
+               return -1;
+
        GET_INKEY *get_inkey;
-       get_inkey = malloc(sizeof(GET_INKEY));
        int ret;
-       memset(get_inkey,0,sizeof(GET_INKEY));
-
-
-       if( handle == NULL )
+       
+       get_inkey = malloc(sizeof(GET_INKEY));
+       if(!get_inkey)
                return -1;
+       memset(get_inkey,0,sizeof(GET_INKEY));
 
        get_inkey->cmd_detail                   =       cmd_detail;
        memcpy(get_inkey->text_string,textstring,strlen(textstring));
@@ -150,13 +154,15 @@ int vgsm_sat_get_input(LXT_HANDLE * handle,char cmd_detail,char* textstring,char
 {
        printf("\n vgsm_sat_get_input\n");
 
+       if( handle == NULL )
+               return -1;
+
        GET_INPUT *get_input;
-       get_input = malloc(sizeof(GET_INPUT));
        int ret;
-       memset(get_input,0,sizeof(GET_INPUT));
-
-       if( handle == NULL )
+       get_input = malloc(sizeof(GET_INPUT));
+       if(!get_input)
                return -1;
+       memset(get_input,0,sizeof(GET_INPUT));
 
        get_input->cmd_detail                   =       cmd_detail;
        memcpy(get_input->text_string,textstring,strlen(textstring));
@@ -188,14 +194,16 @@ int vgsm_sat_set_up_menu(LXT_HANDLE * handle,unsigned char cmd_detail,int num,vo
 {
        printf("\n vgsm_sat_set_up_menu \n");
 
+       if( handle == NULL )
+               return -1;
+
        unsigned char *data;
-       data = malloc(num * sizeof(SET_MENU) + 2);
 //     int i=0;
        int ret=0;
-       memset(data,0,num *sizeof(SET_MENU) + 2);
-
-       if( handle == NULL )
+       data = malloc(num * sizeof(SET_MENU) + 2);
+       if(!data)
                return -1;
+       memset(data,0,num *sizeof(SET_MENU) + 2);
 
        data[0] =(unsigned char)num;
        data[1] = cmd_detail;
@@ -223,14 +231,16 @@ int vgsm_sat_select_item(LXT_HANDLE * handle, unsigned char cmd_detail, int num,
 {
        printf("\n vgsm_sat_select_item \n");
 
+       if( handle == NULL )
+               return -1;
+
        unsigned char *data;
-       data = malloc(num * sizeof(SET_MENU) + 2);
 //     int i=0;
        int ret=0;
-       memset(data,0,num *sizeof(SET_MENU) + 2);
-
-       if( handle == NULL )
+       data = malloc(num * sizeof(SET_MENU) + 2);
+       if(!data)
                return -1;
+       memset(data,0,num *sizeof(SET_MENU) + 2);
 
        data[0] =(unsigned char)num;
        data[1] = cmd_detail;
@@ -259,14 +269,16 @@ int vgsm_sat_send_sms(LXT_HANDLE * handle, unsigned char cmd_detail, unsigned ch
 {
        printf("\n vgsm_sat_send_sms \n");
 
+       if( handle == NULL )
+               return -1;
+
        //unsigned char *data;
        SEND_SMS *send_sms_packet;
        int ret=0;
        send_sms_packet = malloc(sizeof(SEND_SMS));
-       memset(send_sms_packet,0,sizeof(SEND_SMS));
-
-       if( handle == NULL )
+       if(!send_sms_packet)
                return -1;
+       memset(send_sms_packet,0,sizeof(SEND_SMS));
 
        send_sms_packet->cmd_detail=cmd_detail;
        send_sms_packet->address=address ;
@@ -296,6 +308,9 @@ int vgsm_sat_send_sms(LXT_HANDLE * handle, unsigned char cmd_detail, unsigned ch
 {
        printf("\n vgsm_sat_send_sms \n");
 
+       if( handle == NULL )
+               return -1;
+
        unsigned char *data = NULL;
        unsigned char *pdata = NULL;
        char dial_len;
@@ -406,9 +421,6 @@ int vgsm_sat_send_sms(LXT_HANDLE * handle, unsigned char cmd_detail, unsigned ch
 
        printf("\n vgsm_sat_set_up_call \n");
 
-       if( handle == NULL )
-               return -1;
-
        ret = lxt_msg_send_message
                (
                        handle->fd,