telnet: replace atoi for BINARY handling with curlx_str_number

Also, only consider 0 to be a valid switch-off. Previously any value
except 1 had the same effect.

Closes #19477
This commit is contained in:
Daniel Stenberg 2025-11-12 08:32:31 +01:00
parent 97b0abb46b
commit 3b4bf3fcfa
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2

View file

@ -895,8 +895,10 @@ static CURLcode check_telnet_options(struct Curl_easy *data,
case 6:
/* To take care or not of the 8th bit in data exchange */
if(curl_strnequal(option, "BINARY", 6)) {
int binary_option = atoi(arg);
if(binary_option != 1) {
const char *p = arg;
curl_off_t binary_option;
if(!curlx_str_number(&p, &binary_option, 1) &&
(binary_option != 1)) {
tn->us_preferred[CURL_TELOPT_BINARY] = CURL_NO;
tn->him_preferred[CURL_TELOPT_BINARY] = CURL_NO;
}