config: Fail if there is missing argument for some of the match keywords
Signed-off-by: Jakub Jelen <jjelen@redhat.com> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
Этот коммит содержится в:
родитель
3b5f9ef8d6
Коммит
3ce31532eb
23
src/config.c
23
src/config.c
@ -597,10 +597,10 @@ ssh_config_parse_line(ssh_session session,
|
|||||||
int *parsing)
|
int *parsing)
|
||||||
{
|
{
|
||||||
enum ssh_config_opcode_e opcode;
|
enum ssh_config_opcode_e opcode;
|
||||||
const char *p;
|
const char *p = NULL, *p2 = NULL;
|
||||||
char *s, *x;
|
char *s = NULL, *x = NULL;
|
||||||
char *keyword;
|
char *keyword = NULL;
|
||||||
char *lowerhost;
|
char *lowerhost = NULL;
|
||||||
size_t len;
|
size_t len;
|
||||||
int i, rv;
|
int i, rv;
|
||||||
uint8_t *seen = session->opts.options_seen;
|
uint8_t *seen = session->opts.options_seen;
|
||||||
@ -663,7 +663,7 @@ ssh_config_parse_line(ssh_session session,
|
|||||||
|
|
||||||
*parsing = 0;
|
*parsing = 0;
|
||||||
do {
|
do {
|
||||||
p = ssh_config_get_str_tok(&s, NULL);
|
p = p2 = ssh_config_get_str_tok(&s, NULL);
|
||||||
if (p == NULL || p[0] == '\0') {
|
if (p == NULL || p[0] == '\0') {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -701,11 +701,20 @@ ssh_config_parse_line(ssh_session session,
|
|||||||
case MATCH_LOCALUSER:
|
case MATCH_LOCALUSER:
|
||||||
/* Skip one argument */
|
/* Skip one argument */
|
||||||
p = ssh_config_get_str_tok(&s, NULL);
|
p = ssh_config_get_str_tok(&s, NULL);
|
||||||
|
if (p == NULL || p[0] == '\0') {
|
||||||
|
SSH_LOG(SSH_LOG_WARN, "line %d: Match keyword "
|
||||||
|
"'%s' requires argument\n", count, p2);
|
||||||
|
SAFE_FREE(x);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
args++;
|
args++;
|
||||||
FALL_THROUGH;
|
FALL_THROUGH;
|
||||||
case MATCH_CANONICAL:
|
case MATCH_CANONICAL:
|
||||||
SSH_LOG(SSH_LOG_WARN, "line: %d: Unsupported Match keyword "
|
/* These do not need any argument */
|
||||||
"'%s', Ignoring\n", count, p);
|
SSH_LOG(SSH_LOG_WARN,
|
||||||
|
"line %d: Unsupported Match keyword '%s', ignoring\n",
|
||||||
|
count,
|
||||||
|
p2);
|
||||||
result = 0;
|
result = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user