aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Chen <cken@google.com>2020-08-30 06:01:55 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-08-30 06:01:55 +0000
commit2820a9770e73253cf0d2311783c12b1d34c05c06 (patch)
tree59a5fe146ab5f6f952d4f117b74c6a0418820158
parent99d9bfa6b409145847c0f78c976ce9595500f1bc (diff)
parentcf6b3ecd4d9036e8b84489549441c86d1576a796 (diff)
downloadbionic-2820a9770e73253cf0d2311783c12b1d34c05c06.tar.gz
Fix OOB read in DNS resolver am: 43264bc365 am: c5ea7569a8 am: 2c2546b158 am: cf6b3ecd4d
Original change: https://googleplex-android-review.googlesource.com/c/platform/bionic/+/12329970 Change-Id: I8a4388a793a26fb246529165c3e6338115cdaff9
-rw-r--r--libc/dns/resolv/res_send.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libc/dns/resolv/res_send.c b/libc/dns/resolv/res_send.c
index a645a6b4a..fa81e6dc5 100644
--- a/libc/dns/resolv/res_send.c
+++ b/libc/dns/resolv/res_send.c
@@ -948,6 +948,8 @@ send_vc(res_state statp, struct __res_params* params,
else
break;
}
+ // return size should never exceed container size
+ resplen = anssiz;
}
/*
* If the calling applicating has bailed out of
@@ -960,7 +962,7 @@ send_vc(res_state statp, struct __res_params* params,
DprintQ((statp->options & RES_DEBUG) ||
(statp->pfcode & RES_PRF_REPLY),
(stdout, ";; old answer (unexpected):\n"),
- ans, (resplen > anssiz) ? anssiz: resplen);
+ ans, resplen);
goto read_len;
}