X-Git-Url: http://andersk.mit.edu/gitweb/openssh.git/blobdiff_plain/595c699cf7f559317075e8202a722ca5448f8e55..26d0709572fdbde4fb94bce6b08d3df4fdb140e5:/bufaux.c diff --git a/bufaux.c b/bufaux.c index 4ea6af1b..8d096a05 100644 --- a/bufaux.c +++ b/bufaux.c @@ -37,7 +37,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: bufaux.c,v 1.34 2004/12/06 16:00:43 markus Exp $"); +RCSID("$OpenBSD: bufaux.c,v 1.36 2005/06/17 02:44:32 djm Exp $"); #include #include "bufaux.h" @@ -154,7 +154,7 @@ buffer_put_bignum2_ret(Buffer *buffer, const BIGNUM *value) buf[0] = 0x00; /* Get the value of in binary */ oi = BN_bn2bin(value, buf+1); - if (oi != bytes-1) { + if (oi < 0 || (u_int)oi != bytes - 1) { error("buffer_put_bignum2_ret: BN_bn2bin() failed: " "oi %d != bin_size %d", oi, bytes); xfree(buf); @@ -179,7 +179,7 @@ buffer_get_bignum2_ret(Buffer *buffer, BIGNUM *value) { u_int len; u_char *bin; - + if ((bin = buffer_get_string_ret(buffer, &len)) == NULL) { error("buffer_get_bignum2_ret: invalid bignum"); return (-1);