From 936ec03de949ffa457b3ee778c369a9a4fc2e42f Mon Sep 17 00:00:00 2001 From: Jaehyun Kim Date: Tue, 22 Jan 2013 00:27:59 +0900 Subject: Add safe checks to validate DNS buffer Invalid buffer details while parsing DNS rsp data --- gweb/gresolv.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gweb/gresolv.c b/gweb/gresolv.c index 864d2adb..74467f2e 100644 --- a/gweb/gresolv.c +++ b/gweb/gresolv.c @@ -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; -- cgit v1.2.3