Add safe checks to validate DNS buffer 75/5075/1
authorJaehyun Kim <jeik01.kim@samsung.com>
Mon, 21 Jan 2013 15:27:59 +0000 (00:27 +0900)
committerZhang zhengguang <zhengguang.zhang@intel.com>
Mon, 1 Jul 2013 03:05:23 +0000 (11:05 +0800)
Invalid buffer details while parsing DNS rsp data

gweb/gresolv.c

index 864d2ad..74467f2 100644 (file)
@@ -665,7 +665,12 @@ static void parse_response(struct resolv_nameserver *nameserver,
 
        debug(resolv, "response from %s", nameserver->address);
 
+#if defined TIZEN_EXT
+       if (ns_initparse(buf, len, &msg) == -1)
+               return;
+#else
        ns_initparse(buf, len, &msg);
+#endif
 
        list = g_queue_find_custom(resolv->query_queue,
                        GUINT_TO_POINTER(ns_msg_id(msg)), compare_query_msgid);
@@ -713,7 +718,12 @@ static void parse_response(struct resolv_nameserver *nameserver,
                lookup->ipv4_status = status;
 
        for (i = 0; i < count; i++) {
+#if defined TIZEN_EXT
+               if (ns_parserr(&msg, ns_s_an, i, &rr) == -1)
+                       continue;
+#else
                ns_parserr(&msg, ns_s_an, i, &rr);
+#endif
 
                if (ns_rr_class(rr) != ns_c_in)
                        continue;