Fixed svace defects 23/61523/3 accepted/tizen_tv accepted/tizen/common/20160310.081625 accepted/tizen/ivi/20160310.060420 accepted/tizen/mobile/20160310.060303 accepted/tizen/tv/20160310.060326 accepted/tizen/wearable/20160310.060352 submit/tizen/20160309.074754
authorchanywa <cbible.kim@samsung.com>
Tue, 8 Mar 2016 11:52:59 +0000 (20:52 +0900)
committerchanywa <cbible.kim@samsung.com>
Wed, 9 Mar 2016 07:32:49 +0000 (16:32 +0900)
Change-Id: I473254be857726e3d57062e21b7d9ee344939f7f

lbs-server/src/data_connection.c
lbs-server/src/dump_log.c

index 0ca05c2..8e098bb 100644 (file)
@@ -277,9 +277,15 @@ unsigned int stop_pdp_connection(void)
 unsigned int query_dns(char *pdns_lookup_addr, unsigned int *ipaddr, int *port)
 {
        FUNC_ENTRANCE_SERVER;
+
+       if (!pdns_lookup_addr || !ipaddr || !port) return FALSE;
+
        /*int dns_id; */
        unsigned int ret = 0;
-       struct hostent *he;
+       struct hostent hostbuf, *he = NULL;
+       int tmplen = 1024;
+       char *tmpbuf = NULL;
+       int res, herr;
 
        char *colon = strchr(pdns_lookup_addr, ':');
        char *last = NULL;
@@ -291,7 +297,24 @@ unsigned int query_dns(char *pdns_lookup_addr, unsigned int *ipaddr, int *port)
                *port = atoi(ptr);
        }
 
-       he = gethostbyname(pdns_lookup_addr);
+       tmpbuf = malloc(tmplen);
+       if (!tmpbuf) return FALSE;
+
+       while ((res = gethostbyname_r(pdns_lookup_addr, &hostbuf, tmpbuf, tmplen, &he, &herr)) == ERANGE)
+       {
+               /* Enlarge the buffer.  */
+               tmplen *= 2;
+               void *tmp = realloc(tmpbuf, tmplen);
+               if (!tmp) {
+                       free(tmpbuf);
+                       LOG_GPS(DBG_ERR, "Failed to reallocate memories.");
+                       return FALSE;
+               }
+               else {
+                       tmpbuf = tmp;
+               }
+       }
+       free(tmpbuf);
 
        if (he != NULL) {
                LOG_GPS(DBG_LOW, "g_agps_ipaddr: %u\n", g_ipaddr);
index b3213b3..7d13aa9 100644 (file)
 
 int fd = -1;
 
-struct tm *__get_current_time() {
+struct tm * __get_current_time(struct tm *cur_time) {
        time_t now;
-       struct tm *cur_time;
-
        time(&now);
-       cur_time = localtime(&now);
-       return cur_time;
+       return localtime_r(&now, cur_time);
 }
 
 void gps_init_log()
 {
        LOG_GPS(DBG_ERR, "gps_init_log");
        int ret = -1;
-       struct tm *cur_time = NULL;
+       struct tm cur_time;
        char buf[256] = {0, };
        fd = open(GPG_DUMP_LOG, O_RDWR | O_APPEND | O_CREAT, 0644);
        if (fd < 0) {
@@ -54,13 +51,12 @@ void gps_init_log()
                return;
        }
 
-       cur_time = __get_current_time();
-       if (!cur_time) {
+       if (!__get_current_time(&cur_time)) {
                LOG_GPS(DBG_ERR, "Can't get current time[%s]", GPG_DUMP_LOG);
                return;
        }
 
-       g_snprintf(buf, 256, "[%02d:%02d:%02d] -- START GPS -- \n", cur_time->tm_hour, cur_time->tm_min, cur_time->tm_sec);
+       g_snprintf(buf, 256, "[%02d:%02d:%02d] -- START GPS -- \n", cur_time.tm_hour, cur_time.tm_min, cur_time.tm_sec);
        ret = write(fd, buf, strlen(buf));
        if (ret == -1) {
                LOG_GPS(DBG_ERR, "Fail to write file[%s]", GPG_DUMP_LOG);
@@ -72,13 +68,13 @@ void gps_deinit_log()
        LOG_GPS(DBG_ERR, "gps_deinit_log");
        if (fd < 0) return;
        int ret = -1;
-       struct tm *cur_time = __get_current_time();
+       struct tm cur_time;
        char buf[256] = {0, };
 
-       if (!cur_time) {
+       if (!__get_current_time(&cur_time)) {
                LOG_GPS(DBG_ERR, "Can't get current time[%s]", GPG_DUMP_LOG);
        } else {
-               g_snprintf(buf, 256, "[%02d:%02d:%02d] -- END GPS -- \n", cur_time->tm_hour, cur_time->tm_min, cur_time->tm_sec);
+               g_snprintf(buf, 256, "[%02d:%02d:%02d] -- END GPS -- \n", cur_time.tm_hour, cur_time.tm_min, cur_time.tm_sec);
                ret = write(fd, buf, strlen(buf));
                if (ret == -1) {
                        LOG_GPS(DBG_ERR, "Fail to write file[%s]", GPG_DUMP_LOG);
@@ -96,17 +92,17 @@ void gps_dump_log(const char *str, const char *app_id)
        }
        int ret = -1;
        char buf[256] = {0, };
-       struct tm *cur_time = __get_current_time();
+       struct tm cur_time;
 
-       if (!cur_time) {
+       if (!__get_current_time(&cur_time)) {
                LOG_GPS(DBG_ERR, "Can't get current time[%s]", GPG_DUMP_LOG);
                return;
        }
 
        if (app_id == NULL) {
-               g_snprintf(buf, 256, "[%02d:%02d:%02d] %s\n", cur_time->tm_hour, cur_time->tm_min, cur_time->tm_sec, str);
+               g_snprintf(buf, 256, "[%02d:%02d:%02d] %s\n", cur_time.tm_hour, cur_time.tm_min, cur_time.tm_sec, str);
        } else {
-               g_snprintf(buf, 256, "[%02d:%02d:%02d] %s from [%s]\n", cur_time->tm_hour, cur_time->tm_min, cur_time->tm_sec, str, app_id);
+               g_snprintf(buf, 256, "[%02d:%02d:%02d] %s from [%s]\n", cur_time.tm_hour, cur_time.tm_min, cur_time.tm_sec, str, app_id);
        }
        LOG_GPS(DBG_ERR, "Add dump log [%s", buf);
        ret = write(fd, buf, strlen(buf));