summaryrefslogtreecommitdiff
path: root/security/openscep/files/patch-lib_sigattr.c
diff options
context:
space:
mode:
Diffstat (limited to 'security/openscep/files/patch-lib_sigattr.c')
-rw-r--r--security/openscep/files/patch-lib_sigattr.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/security/openscep/files/patch-lib_sigattr.c b/security/openscep/files/patch-lib_sigattr.c
new file mode 100644
index 000000000000..f90f9afc4600
--- /dev/null
+++ b/security/openscep/files/patch-lib_sigattr.c
@@ -0,0 +1,35 @@
+--- lib/sigattr.c.orig Wed Feb 20 02:40:06 2002
++++ lib/sigattr.c Thu May 19 16:26:46 2005
+@@ -8,6 +8,7 @@
+ #include <sigattr.h>
+ #include <init.h>
+ #include <openssl/err.h>
++#include <openssl/opensslv.h>
+
+ /*
+ * read an attribute of type string
+@@ -120,6 +121,7 @@
+ X509_ATTRIBUTE *attr;
+ int i;
+ scepmsg_t *msg;
++ int single;
+
+ if (debug)
+ BIO_printf(bio_err, "%s:%d: looking for attribute '%s'\n",
+@@ -146,8 +148,14 @@
+ for (i = 0; i < sk_X509_ATTRIBUTE_num(sig_attribs); i++) {
+ attr = sk_X509_ATTRIBUTE_value(sig_attribs, i);
+ if (OBJ_cmp(attr->object, asn1_obj) == 0) {
+- if ((!attr->set) || (sk_ASN1_TYPE_num(attr->value.set)
+- == 0)) {
++#if OPENSSL_VERSION_NUMBER < 0x00907000L
++ /* attr->set was replaced with attr->single (with opposite
++ meaning) somewhere between 0.9.6m-engine and 0.9.7d */
++ single = !attr->set;
++#else
++ single = attr->single;
++#endif
++ if (single || (sk_ASN1_TYPE_num(attr->value.set) == 0)) {
+ BIO_printf(bio_err, "%s:%d: attr has no val\n",
+ __FILE__, __LINE__);
+ goto err;