From: Jaehyun Kim <[email protected]> Invalid buffer details while parsing DNS rsp data
Change-Id: I17b3ccf29eef01bde36ea4b852d14897014d8155 Signed-off-by: Zhang zhengguang <[email protected]> --- gweb/gresolv.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gweb/gresolv.c b/gweb/gresolv.c index 5230bca..b8135ad 100644 --- a/gweb/gresolv.c +++ b/gweb/gresolv.c @@ -665,7 +665,8 @@ static void parse_response(struct resolv_nameserver *nameserver, debug(resolv, "response from %s", nameserver->address); - ns_initparse(buf, len, &msg); + if (ns_initparse(buf, len, &msg) == -1) + return; list = g_queue_find_custom(resolv->query_queue, GUINT_TO_POINTER(ns_msg_id(msg)), compare_query_msgid); @@ -713,7 +714,8 @@ static void parse_response(struct resolv_nameserver *nameserver, lookup->ipv4_status = status; for (i = 0; i < count; i++) { - ns_parserr(&msg, ns_s_an, i, &rr); + if (ns_parserr(&msg, ns_s_an, i, &rr) == -1) + continue; if (ns_rr_class(rr) != ns_c_in) continue; -- 1.7.9.5 _______________________________________________ connman mailing list [email protected] https://lists.connman.net/mailman/listinfo/connman
