summaryrefslogtreecommitdiffstats
path: root/freebsd/crypto/openssl/crypto/asn1/a_bitstr.c
diff options
context:
space:
mode:
Diffstat (limited to 'freebsd/crypto/openssl/crypto/asn1/a_bitstr.c')
-rw-r--r--freebsd/crypto/openssl/crypto/asn1/a_bitstr.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/freebsd/crypto/openssl/crypto/asn1/a_bitstr.c b/freebsd/crypto/openssl/crypto/asn1/a_bitstr.c
index 25db8b06..a98bb9b9 100644
--- a/freebsd/crypto/openssl/crypto/asn1/a_bitstr.c
+++ b/freebsd/crypto/openssl/crypto/asn1/a_bitstr.c
@@ -116,10 +116,11 @@ int i2c_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **pp)
*(p++) = (unsigned char)bits;
d = a->data;
- memcpy(p, d, len);
- p += len;
- if (len > 0)
+ if (len > 0) {
+ memcpy(p, d, len);
+ p += len;
p[-1] &= (0xff << bits);
+ }
*pp = p;
return (ret);
}