From 4e1b0e269f5e5e176b067881f34761c19f2440ff Mon Sep 17 00:00:00 2001 From: Norbert Pocs Date: Tue, 2 May 2023 16:56:27 +0200 Subject: [PATCH] options: Fail if no number was parsed strtoul returns 0 if no valid character was parsed, which can unwantedly misconfigure the options. Signed-off-by: Norbert Pocs Reviewed-by: Andreas Schneider --- src/options.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/options.c b/src/options.c index dbdc0246..97631d94 100644 --- a/src/options.c +++ b/src/options.c @@ -620,7 +620,9 @@ int ssh_options_set(ssh_session session, enum ssh_options_e type, } i = strtol(q, &p, 10); if (q == p) { + SSH_LOG(SSH_LOG_DEBUG, "No port number was parsed"); SAFE_FREE(q); + return -1; } SAFE_FREE(q); if (i <= 0) { @@ -822,7 +824,9 @@ int ssh_options_set(ssh_session session, enum ssh_options_e type, } i = strtol(q, &p, 10); if (q == p) { + SSH_LOG(SSH_LOG_DEBUG, "No log verbositiy was parsed"); SAFE_FREE(q); + return -1; } SAFE_FREE(q); if (i < 0) { @@ -2018,7 +2022,9 @@ int ssh_bind_options_set(ssh_bind sshbind, enum ssh_bind_options_e type, } i = strtol(q, &p, 10); if (q == p) { - SAFE_FREE(q); + SSH_LOG(SSH_LOG_DEBUG, "No bind port was parsed"); + SAFE_FREE(q); + return -1; } SAFE_FREE(q); @@ -2045,7 +2051,9 @@ int ssh_bind_options_set(ssh_bind sshbind, enum ssh_bind_options_e type, } i = strtol(q, &p, 10); if (q == p) { - SAFE_FREE(q); + SSH_LOG(SSH_LOG_DEBUG, "No log verbositiy was parsed"); + SAFE_FREE(q); + return -1; } SAFE_FREE(q);