From 090c8523a47f00dcced66423f1d7656df7f2f4b9 Mon Sep 17 00:00:00 2001 From: Brad House Date: Thu, 12 Dec 2024 10:51:08 -0500 Subject: [PATCH] ARES_SOCKET_OPT_BIND_DEVICE only validate printable up to NULL terminator --- src/lib/ares_set_socket_functions.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/ares_set_socket_functions.c b/src/lib/ares_set_socket_functions.c index 143c491174..7216ffa933 100644 --- a/src/lib/ares_set_socket_functions.c +++ b/src/lib/ares_set_socket_functions.c @@ -288,7 +288,9 @@ static int default_asetsockopt(ares_socket_t sock, ares_socket_opt_t opt, return setsockopt(sock, SOL_SOCKET, SO_RCVBUF, val, val_size); case ARES_SOCKET_OPT_BIND_DEVICE: - if (!ares_str_isprint(val, (size_t)val_size)) { + /* Count the number of characters before NULL terminator then + * validate those are all printable */ + if (!ares_str_isprint(val, ares_strnlen(val, (size_t)val_size))) { SET_SOCKERRNO(EINVAL); return -1; }