diff options
Diffstat (limited to 'libssh/keyfiles.c')
-rw-r--r-- | libssh/keyfiles.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libssh/keyfiles.c b/libssh/keyfiles.c index a4cec4e6..c45d9abd 100644 --- a/libssh/keyfiles.c +++ b/libssh/keyfiles.c @@ -848,6 +848,12 @@ static char **ssh_get_knownhost_line(SSH_SESSION *session,FILE **file, char *fil if(!buffer[0] || buffer[0]=='#') continue; /* skip empty lines */ tokens=space_tokenize(buffer); + if (tokens == NULL) { + fclose(*file); + *file = NULL; + leave_function(); + return NULL; + } if(!tokens[0] || !tokens[1] || !tokens[2]){ /* it should have at least 3 tokens */ tokens_free(tokens); @@ -870,6 +876,8 @@ static char **ssh_get_knownhost_line(SSH_SESSION *session,FILE **file, char *fil continue; } } + fclose(*file); + *file = NULL; leave_function(); return tokens; } |