summaryrefslogtreecommitdiff
path: root/Cryptlib/OpenSSL/crypto/bn/bn_word.c
diff options
context:
space:
mode:
authorSteve Langasek <steve.langasek@canonical.com>2014-10-07 05:35:11 +0000
committerSteve Langasek <steve.langasek@canonical.com>2014-10-07 05:35:11 +0000
commit1e963007c0d9466726a8680e52a95955288d8927 (patch)
tree9345749af183fe511dfe6a24fb43b44a5feefcd9 /Cryptlib/OpenSSL/crypto/bn/bn_word.c
parente34fca619d8a75f3b67d59d45cdd9db4da2342e6 (diff)
downloadefi-boot-shim-1e963007c0d9466726a8680e52a95955288d8927.tar.gz
efi-boot-shim-1e963007c0d9466726a8680e52a95955288d8927.zip
debian/patches/0001-Update-openssl-to-0.9.8za.patch: cherry-pick
openssl 0.9.8za in via upstream.
Diffstat (limited to 'Cryptlib/OpenSSL/crypto/bn/bn_word.c')
-rwxr-xr-xCryptlib/OpenSSL/crypto/bn/bn_word.c25
1 files changed, 8 insertions, 17 deletions
diff --git a/Cryptlib/OpenSSL/crypto/bn/bn_word.c b/Cryptlib/OpenSSL/crypto/bn/bn_word.c
index ee7b87c4..de83a15b 100755
--- a/Cryptlib/OpenSSL/crypto/bn/bn_word.c
+++ b/Cryptlib/OpenSSL/crypto/bn/bn_word.c
@@ -144,26 +144,17 @@ int BN_add_word(BIGNUM *a, BN_ULONG w)
a->neg=!(a->neg);
return(i);
}
- /* Only expand (and risk failing) if it's possibly necessary */
- if (((BN_ULONG)(a->d[a->top - 1] + 1) == 0) &&
- (bn_wexpand(a,a->top+1) == NULL))
- return(0);
- i=0;
- for (;;)
+ for (i=0;w!=0 && i<a->top;i++)
{
- if (i >= a->top)
- l=w;
- else
- l=(a->d[i]+w)&BN_MASK2;
- a->d[i]=l;
- if (w > l)
- w=1;
- else
- break;
- i++;
+ a->d[i] = l = (a->d[i]+w)&BN_MASK2;
+ w = (w>l)?1:0;
}
- if (i >= a->top)
+ if (w && i==a->top)
+ {
+ if (bn_wexpand(a,a->top+1) == NULL) return 0;
a->top++;
+ a->d[i]=w;
+ }
bn_check_top(a);
return(1);
}