summaryrefslogtreecommitdiff
path: root/ssh-keysign.c
diff options
context:
space:
mode:
authormouring <mouring>2002-06-09 20:01:48 +0000
committermouring <mouring>2002-06-09 20:01:48 +0000
commit4d05a05c3c6d888ce053c508f81248cf55d3f28e (patch)
tree4b484257650e8877f319c1aae8c34d2ddb70445c /ssh-keysign.c
parent684d85ac57f55c058a516842644d4bbc873e5f1b (diff)
downloadopenssh-4d05a05c3c6d888ce053c508f81248cf55d3f28e.tar.gz
- markus@cvs.openbsd.org 2002/06/08 05:07:09
[ssh-keysign.c] only accept 20 byte session ids
Diffstat (limited to 'ssh-keysign.c')
-rw-r--r--ssh-keysign.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/ssh-keysign.c b/ssh-keysign.c
index 78929b2e..52092782 100644
--- a/ssh-keysign.c
+++ b/ssh-keysign.c
@@ -22,7 +22,7 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "includes.h"
-RCSID("$OpenBSD: ssh-keysign.c,v 1.2 2002/05/31 10:30:33 markus Exp $");
+RCSID("$OpenBSD: ssh-keysign.c,v 1.3 2002/06/08 05:07:09 markus Exp $");
#include <openssl/evp.h>
@@ -60,8 +60,12 @@ valid_request(struct passwd *pw, char *host, Key **ret, u_char *data,
buffer_init(&b);
buffer_append(&b, data, datalen);
- /* session id */
- buffer_skip_string(&b);
+ /* session id, currently limited to SHA1 (20 bytes) */
+ p = buffer_get_string(&b, &len);
+ if (len != 20)
+ fail++;
+ xfree(p);
+
if (buffer_get_char(&b) != SSH2_MSG_USERAUTH_REQUEST)
fail++;