ASN1_BIT_STRING_set_bit() didn't clear previously set bits

This commit is contained in:
Richard Levitte 2002-02-03 21:31:41 +00:00
parent 1955b87423
commit b9a3ef4c6e
2 changed files with 8 additions and 2 deletions

View File

@ -4,14 +4,19 @@
Changes between 0.9.6 and 0.9.7 [xx XXX 2001] Changes between 0.9.6 and 0.9.7 [xx XXX 2001]
OpenSSL 0.9.6a/0.9.6b (bugfix releases, 5 Apr 2001 and 9 July 2001) OpenSSL 0.9.6a/0.9.6b/0.9.6c (bugfix releases, 5 Apr 2001, 9 July 2001
and OpenSSL 0.9.7 were developed in parallel, based on OpenSSL 0.9.6. and 21 Dec 2001) and OpenSSL 0.9.7 were developed in parallel, based
on OpenSSL 0.9.6.
Change log entries are tagged as follows: Change log entries are tagged as follows:
-) applies to 0.9.6a/0.9.6b/0.9.6c only -) applies to 0.9.6a/0.9.6b/0.9.6c only
*) applies to 0.9.6a/0.9.6b/0.9.6c and 0.9.7 *) applies to 0.9.6a/0.9.6b/0.9.6c and 0.9.7
+) applies to 0.9.7 only +) applies to 0.9.7 only
*) Have ASN1_BIT_STRING_set_bit() really clear a bit when the requested
value is 0.
[Richard Levitte]
+) Have the CHIL engine fork-safe (as defined by nCipher) and actually +) Have the CHIL engine fork-safe (as defined by nCipher) and actually
make the newer ENGINE framework commands for the CHIL engine work. make the newer ENGINE framework commands for the CHIL engine work.
[Toomas Kiisk <vix@cyber.ee> and Richard Levitte] [Toomas Kiisk <vix@cyber.ee> and Richard Levitte]

View File

@ -172,6 +172,7 @@ int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value)
w=n/8; w=n/8;
v=1<<(7-(n&0x07)); v=1<<(7-(n&0x07));
iv= ~v; iv= ~v;
if (!value) v=0;
a->flags&= ~(ASN1_STRING_FLAG_BITS_LEFT|0x07); /* clear, set on write */ a->flags&= ~(ASN1_STRING_FLAG_BITS_LEFT|0x07); /* clear, set on write */