diff options
author | Kurt Roeckx <kurt@roeckx.be> | 2016-05-24 21:32:01 +0200 |
---|---|---|
committer | Kurt Roeckx <kurt@roeckx.be> | 2016-05-25 21:20:07 +0200 |
commit | dc9887c0199f5b7579e7b82dd7910008e419816f (patch) | |
tree | 0d576be292596401b01997d7764b8f190d289757 /crypto | |
parent | 223516eadcd6c896392f8915585a50934adb863d (diff) | |
download | openssl-dc9887c0199f5b7579e7b82dd7910008e419816f.tar.gz |
Avoid creating an illegal pointer
Found by tis-interpreter
Reviewed-by: Rich Salz <rsalz@openssl.org>
GH: #1122
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/asn1/a_int.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/crypto/asn1/a_int.c b/crypto/asn1/a_int.c index d06d4178dd..9c28c02951 100644 --- a/crypto/asn1/a_int.c +++ b/crypto/asn1/a_int.c @@ -201,18 +201,18 @@ static size_t c2i_ibuf(unsigned char *b, int *pneg, /* Must be negative: calculate twos complement */ if (b) { const unsigned char *from = p + plen - 1 + pad; - unsigned char *to = b + plen - 1; + unsigned char *to = b + plen; i = plen; while (*from == 0 && i) { - *to-- = 0; + *--to = 0; i--; from--; } - *to-- = (*from-- ^ 0xff) + 1; + *--to = (*from-- ^ 0xff) + 1; OPENSSL_assert(i != 0); i--; for (; i > 0; i--) - *to-- = *from-- ^ 0xff; + *--to = *from-- ^ 0xff; } return plen; } |