Fix a horrible BN bug in bn_expand2 which caused BN_add_word() et al to fail
authorDr. Stephen Henson <steve@openssl.org>
Thu, 15 Apr 1999 23:07:00 +0000 (23:07 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Thu, 15 Apr 1999 23:07:00 +0000 (23:07 +0000)
commit953937bdc624026eda5b36bcedc9dfacb9e85025
tree262c60be46e7541c3e8ade75b18a2b7b9c682943
parentabed0b8a1f1e3aa73c9e9873c6df8e194a2ca14f
Fix a horrible BN bug in bn_expand2 which caused BN_add_word() et al to fail
when they cause the destination to expand.

To see how evil this is try this:

#include <pem.h>
main()
{
BIGNUM *bn = NULL;
        int i;
bn = BN_new();
BN_hex2bn(&bn, "FFFFFFFF");
BN_add_word(bn, 1);
printf("Value %s\n", BN_bn2hex(bn));
}

This would typically fail before the patch.

It also screws up if you comment out the BN_hex2bn line above or in any
situation where BN_add_word() causes the number of BN_ULONGs in the result
to change (try doubling the number of FFs).
CHANGES
crypto/bn/bn_lib.c