diff options
author | Ludovic Courtès <ludo@gnu.org> | 2017-06-04 21:59:18 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2017-06-04 23:00:32 +0200 |
commit | fb976ada5be4634048bcbdde880729ee12f610e9 (patch) | |
tree | 5bf3057336ca91184605217e9e2f4df4691ceb8c /gnu/packages/patches/libssh-hostname-parser-bug.patch | |
parent | 6bf11392f96c1667d6f5927b53caf5411fc0ed6e (diff) | |
download | guix-fb976ada5be4634048bcbdde880729ee12f610e9.tar guix-fb976ada5be4634048bcbdde880729ee12f610e9.tar.gz |
gnu: libssh: Update to 0.7.5.
* gnu/packages/ssh.scm (libssh): Update to 0.7.5.
[source](patches): New field.
Diffstat (limited to 'gnu/packages/patches/libssh-hostname-parser-bug.patch')
-rw-r--r-- | gnu/packages/patches/libssh-hostname-parser-bug.patch | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gnu/packages/patches/libssh-hostname-parser-bug.patch b/gnu/packages/patches/libssh-hostname-parser-bug.patch new file mode 100644 index 0000000000..69f46cbdd6 --- /dev/null +++ b/gnu/packages/patches/libssh-hostname-parser-bug.patch @@ -0,0 +1,31 @@ +Fix "Hostname" parsing in OpenSSH config files, as reported +at <https://red.libssh.org/issues/260>. + +From: Niels Ole Salscheider <niels_ole@salscheider-online.de> +Date: Mon, 8 May 2017 17:36:13 +0200 +Subject: [PATCH] Fix reading of the first parameter + +This is a fixup for 7b8b5eb4eac314a3a29be812bef0264c6611f6e7. +Previously, it would return as long as the parameter was _not_ seen +before. It also did not handle the case for the unsupported opcode (-1) +which would cause a segfault when accessing the "seen" array. +--- + src/config.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/config.c b/src/config.c +index 7c03b27..238a655 100644 +--- a/src/config.c ++++ b/src/config.c +@@ -218,8 +218,9 @@ static int ssh_config_parse_line(ssh_session session, const char *line, + } + + opcode = ssh_config_get_opcode(keyword); +- if (*parsing == 1 && opcode != SOC_HOST) { +- if (seen[opcode] == 0) { ++ if (*parsing == 1 && opcode != SOC_HOST && ++ opcode > SOC_UNSUPPORTED && opcode < SOC_END) { ++ if (seen[opcode] == 1) { + return 0; + } + seen[opcode] = 1; |