File eID-belgium-2.5.9-64bit-newpkcs11-src-libopensc-asn1.patch of Package eID-belgium
--- src/newpkcs11/src/libopensc/asn1.c 2006-01-05 21:28:53.000000000 +0100
+++ ../asn1.c 2007-06-13 16:50:02.000000000 +0200
@@ -468,11 +468,11 @@
*/
static int decode_bit_field(const u8 * inbuf, size_t inlen, void *outbuf, size_t outlen)
{
- u8 data[sizeof(unsigned int)];
+ u8 data[2*sizeof(unsigned int)];
unsigned int field = 0;
int i, n;
- if (outlen != sizeof(data))
+ if (outlen > sizeof(data))
return SC_ERROR_BUFFER_TOO_SMALL;
n = decode_bit_string(inbuf, inlen, data, sizeof(data), 1);
@@ -489,11 +489,11 @@
static int encode_bit_field(const u8 *inbuf, size_t inlen,
u8 **outbuf, size_t *outlen)
{
- u8 data[sizeof(unsigned int)];
+ u8 data[2*sizeof(unsigned int)];
unsigned int field = 0;
size_t i, bits;
- if (inlen != sizeof(data))
+ if (inlen > sizeof(data))
return SC_ERROR_BUFFER_TOO_SMALL;
/* count the bits */