From 1f91ab049fcfbc9a5ca633489b7caf650aff1de7 Mon Sep 17 00:00:00 2001 From: Kamil Dudka Date: Sun, 6 Dec 2009 14:32:32 +0100 Subject: [PATCH] libgcrypt: follow-up for ssh-dss padding fix Signed-off-by: Simon Josefsson --- src/libgcrypt.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/libgcrypt.c b/src/libgcrypt.c index b06be42..84d708e 100644 --- a/src/libgcrypt.c +++ b/src/libgcrypt.c @@ -435,7 +435,17 @@ _libssh2_dsa_sha1_sign(libssh2_dsa_ctx * dsactx, } tmp = gcry_sexp_nth_data(data, 1, &size); - if (!tmp || size < 1 || size > 20) { + if (!tmp) { + ret = -1; + goto out; + } + + if (tmp[0] == '\0') { + tmp++; + size--; + } + + if (size < 1 || size > 20) { ret = -1; goto out; } @@ -453,7 +463,17 @@ _libssh2_dsa_sha1_sign(libssh2_dsa_ctx * dsactx, } tmp = gcry_sexp_nth_data(data, 1, &size); - if (!tmp || size < 1 || size > 20) { + if (!tmp) { + ret = -1; + goto out; + } + + if (tmp[0] == '\0') { + tmp++; + size--; + } + + if (size < 1 || size > 20) { ret = -1; goto out; }