aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2022-08-29 00:52:28 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2022-08-29 00:55:50 +0200
commit0f08037929376160d1aa43456791d12dcc5b3003 (patch)
tree2942a9906fda339f9a261c14700b320ca2ef3305
parentc7c151fe3a2700bcabfc07235176fcedf7e9b089 (diff)
downloadslirp-0f08037929376160d1aa43456791d12dcc5b3003.zip
slirp-0f08037929376160d1aa43456791d12dcc5b3003.tar.gz
slirp-0f08037929376160d1aa43456791d12dcc5b3003.tar.bz2
Reject domain-search when any entry ends with ".."
rather than rejecting only when all of them are bogus. Reported-by: Michael T <michael.gr220@gmail.com> Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
-rw-r--r--src/dnssearch.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/dnssearch.c b/src/dnssearch.c
index 55497e8..cbd1a19 100644
--- a/src/dnssearch.c
+++ b/src/dnssearch.c
@@ -263,15 +263,15 @@ int translate_dnssearch(Slirp *s, const char **names)
for (i = 0; i < num_domains; i++) {
domains[i].labels = outptr;
domain_mklabels(domains + i, names[i]);
+ if (domains[i].len == 0) {
+ /* Bogus entry, reject it all */
+ g_free(domains);
+ g_free(result);
+ return -1;
+ }
outptr += domains[i].len;
}
- if (outptr == result) {
- g_free(domains);
- g_free(result);
- return -1;
- }
-
qsort(domains, num_domains, sizeof(*domains), domain_suffix_ord);
domain_fixup_order(domains, num_domains);