Sophie

Sophie

distrib > Mandriva > 2007.0 > x86_64 > by-pkgid > 211e11dfa1d04563b4694008eb311c62 > files > 3

libesmtp-1.0.3r1-3mdk.src.rpm

--- libesmtp-1.0.3r1/smtp-tls.c.orig	2004-04-21 10:25:34.000000000 +0200
+++ libesmtp-1.0.3r1/smtp-tls.c	2005-10-19 20:27:32.000000000 +0200
@@ -552,19 +552,31 @@
 	  extstr = OBJ_nid2sn (OBJ_obj2nid (X509_EXTENSION_get_object (ext)));
 	  if (strcmp (extstr, "subjectAltName") == 0)
 	    {
+#if (OPENSSL_VERSION_NUMBER > 0x00908000L)
+	      const unsigned char *data;
+#else
 	      unsigned char *data;
+#endif
 	      STACK_OF(CONF_VALUE) *val;
 	      CONF_VALUE *nval;
 	      X509V3_EXT_METHOD *meth;
+              void *ext_str = NULL;
 	      int stack_len;
 
 	      meth = X509V3_EXT_get (ext);
 	      if (meth == NULL)
 		break;
 	      data = ext->value->data;
-	      val = (*meth->i2v) (meth, (*meth->d2i) (NULL, &data,
-						      ext->value->length),
-				  NULL);
+#if (OPENSSL_VERSION_NUMBER > 0x00907000L)
+              if (meth->it)
+                ext_str = ASN1_item_d2i (NULL, &data, ext->value->length,
+                                         ASN1_ITEM_ptr (meth->it));
+              else
+                ext_str = meth->d2i (NULL, &data, ext->value->length);
+#else
+              ext_str = meth->d2i(NULL, &data, ext->value->length);
+#endif
+              val = meth->i2v(meth, ext_str, NULL); 
 	      stack_len = sk_CONF_VALUE_num (val);
 	      for (j = 0; j < stack_len; j++)
 		{