mirror of
git://anongit.mindrot.org/openssh.git
synced 2025-01-03 08:12:05 +00:00
upstream commit
Validate digest arg in ssh_digest_final; from jjelen at redhat.com via bz#2687, ok djm@ Upstream-ID: dbe5494dfddfe523fab341a3dab5a79e7338f878
This commit is contained in:
parent
bee0167be2
commit
4a4b75adac
@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: digest-openssl.c,v 1.5 2014/12/21 22:27:56 djm Exp $ */
|
/* $OpenBSD: digest-openssl.c,v 1.6 2017/03/10 02:59:51 dtucker Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2013 Damien Miller <djm@mindrot.org>
|
* Copyright (c) 2013 Damien Miller <djm@mindrot.org>
|
||||||
*
|
*
|
||||||
@ -158,7 +158,7 @@ ssh_digest_final(struct ssh_digest_ctx *ctx, u_char *d, size_t dlen)
|
|||||||
const struct ssh_digest *digest = ssh_digest_by_alg(ctx->alg);
|
const struct ssh_digest *digest = ssh_digest_by_alg(ctx->alg);
|
||||||
u_int l = dlen;
|
u_int l = dlen;
|
||||||
|
|
||||||
if (dlen > UINT_MAX)
|
if (digest == NULL || dlen > UINT_MAX)
|
||||||
return SSH_ERR_INVALID_ARGUMENT;
|
return SSH_ERR_INVALID_ARGUMENT;
|
||||||
if (dlen < digest->digest_len) /* No truncation allowed */
|
if (dlen < digest->digest_len) /* No truncation allowed */
|
||||||
return SSH_ERR_INVALID_ARGUMENT;
|
return SSH_ERR_INVALID_ARGUMENT;
|
||||||
|
Loading…
Reference in New Issue
Block a user