← Commit list

b2e0b4d008

Daniel Stenberg
Daniel Stenberg
2025-11-12
SUCCESS Duration: 144s

Subject

libssh2: replace atoi() in ssh_force_knownhost_key_type

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

lib/vssh/libssh2.c+6 -4
@@ -748,19 +748,21 @@ static CURLcode ssh_force_knownhost_key_type(struct Curl_easy *data,
if(store) {
if(store->name) {
if(store->name[0] == '[') {
- int port = 0;
+ curl_off_t port;
size_t kh_name_size = 0;
+ const char *p;
const char *kh_name_end = strstr(store->name, "]:");
if(!kh_name_end) {
infof(data, "Invalid host pattern %s in %s",
store->name, data->set.str[STRING_SSH_KNOWNHOSTS]);
continue;
}
- port = atoi(kh_name_end + 2);
- if(kh_name_end && (port == conn->remote_port)) {
+ p = kh_name_end + 2; /* start of port number */
+ if(!curlx_str_number(&p, &port, 0xffff) &&
+ (kh_name_end && (port == conn->remote_port))) {
kh_name_size = strlen(store->name) - 1 - strlen(kh_name_end);
if(strncmp(store->name + 1,
- conn->host.name, kh_name_size) == 0) {
+ conn->host.name, kh_name_size) == 0) {
found = TRUE;
break;
}