=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/Attic/bufaux.c,v retrieving revision 1.2 retrieving revision 1.4 diff -u -r1.2 -r1.4 --- src/usr.bin/ssh/Attic/bufaux.c 1999/09/28 04:45:36 1.2 +++ src/usr.bin/ssh/Attic/bufaux.c 1999/11/12 17:28:35 1.4 @@ -15,7 +15,7 @@ */ #include "includes.h" -RCSID("$Id: bufaux.c,v 1.2 1999/09/28 04:45:36 provos Exp $"); +RCSID("$Id: bufaux.c,v 1.4 1999/11/12 17:28:35 markus Exp $"); #include "ssh.h" #include @@ -37,7 +37,9 @@ /* Get the value of in binary */ oi = BN_bn2bin(value, buf); - assert(oi == bin_size); + if (oi != bin_size) + fatal("buffer_put_bignum: BN_bn2bin() failed: oi %d != bin_size %d", + oi, bin_size); /* Store the number of bits in the buffer in two bytes, msb first. */ PUT_16BIT(msg, bits); @@ -62,10 +64,11 @@ bits = GET_16BIT(buf); /* Compute the number of binary bytes that follow. */ bytes = (bits + 7) / 8; - bin = xmalloc(bytes); - buffer_get(buffer, bin, bytes); + if (buffer_len(buffer) < bytes) + fatal("buffer_get_bignum: input buffer too small"); + bin = buffer_ptr(buffer); BN_bin2bn(bin, bytes, value); - xfree(bin); + buffer_consume(buffer, bytes); return 2 + bytes; }