summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source/ssh-dialog.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/source/ssh-dialog.c b/source/ssh-dialog.c
index 8316eb80..9cf7f10d 100644
--- a/source/ssh-dialog.c
+++ b/source/ssh-dialog.c
@@ -138,7 +138,17 @@ static char ** get_ssh ( unsigned int *length )
if ( fd != NULL ) {
char buffer[1024];
while ( fgets ( buffer, 1024, fd ) != NULL ) {
- if ( strncasecmp ( buffer, "Host", 4 ) == 0 && isspace ( buffer[4] ) ) {
+ char *token = &buffer[0];
+ // Skip initial spaces.
+ while ( ( *token ) != '\n' && ( *token ) != '\0' && isspace ( *token ) ) {
+ token++;
+ }
+ // Skip empty lines.
+ if ( ( *token ) == '\n' || ( *token ) == '\0' ) {
+ continue;
+ }
+ // Check for "Host[::space::]"
+ if ( strncasecmp ( token, "Host", 4 ) == 0 && isspace ( token[4] ) ) {
int start = 0, stop = 0;
buffer[strlen ( buffer ) - 1] = '\0';