changeset 2834:81ec32f04114 draft

Workaround for BN_bn2mpi reading/writing out of bounds When OpenSSL's BN_bn2mpi is passed a buffer of size 4, valgrind reports reading/writing one byte past it. I am unable to find evidence of this behaviour in BN_bn2mpi's source code, so it may be a spurious warning. However, this change is harmless, as only the bignum with value 0 results in an mpi serialization of size 4.
author Pieter Wuille <pieter.wuille@gmail.com>
date Sat, 18 Feb 2012 13:32:25 +0100
parents 8203cfbe1cf7
children dcd71ce7f024 2e5fc4ba0dfa
files src/bignum.h
diffstat 1 files changed, 1 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/bignum.h
+++ b/src/bignum.h
@@ -243,7 +243,7 @@
     std::vector<unsigned char> getvch() const
     {
         unsigned int nSize = BN_bn2mpi(this, NULL);
-        if (nSize < 4)
+        if (nSize <= 4)
             return std::vector<unsigned char>();
         std::vector<unsigned char> vch(nSize);
         BN_bn2mpi(this, &vch[0]);