defb1b575a
focusing to PR pkg/41829. * Add comments to patches. Bump PKGREVISION.
100 lines
2.6 KiB
Text
100 lines
2.6 KiB
Text
$NetBSD: patch-dp,v 1.1 2009/08/11 14:26:59 taca Exp $
|
|
|
|
* Instead of returning different type of value thorugh generic type,
|
|
use separate functions for each type.
|
|
|
|
--- ext/openssl/ossl_pkcs7.c.orig 2007-06-09 00:02:04.000000000 +0900
|
|
+++ ext/openssl/ossl_pkcs7.c
|
|
@@ -570,12 +570,11 @@ ossl_pkcs7_add_certificate(VALUE self, V
|
|
return self;
|
|
}
|
|
|
|
-static STACK *
|
|
-pkcs7_get_certs_or_crls(VALUE self, int want_certs)
|
|
+static STACK_OF(X509) *
|
|
+pkcs7_get_certs(VALUE self)
|
|
{
|
|
PKCS7 *pkcs7;
|
|
STACK_OF(X509) *certs;
|
|
- STACK_OF(X509_CRL) *crls;
|
|
int i;
|
|
|
|
GetPKCS7(self, pkcs7);
|
|
@@ -583,17 +582,38 @@ pkcs7_get_certs_or_crls(VALUE self, int
|
|
switch(i){
|
|
case NID_pkcs7_signed:
|
|
certs = pkcs7->d.sign->cert;
|
|
- crls = pkcs7->d.sign->crl;
|
|
break;
|
|
case NID_pkcs7_signedAndEnveloped:
|
|
certs = pkcs7->d.signed_and_enveloped->cert;
|
|
+ break;
|
|
+ default:
|
|
+ certs = NULL;
|
|
+ }
|
|
+
|
|
+ return certs;
|
|
+}
|
|
+
|
|
+static STACK_OF(X509_CRL) *
|
|
+pkcs7_get_crls(VALUE self)
|
|
+{
|
|
+ PKCS7 *pkcs7;
|
|
+ STACK_OF(X509_CRL) *crls;
|
|
+ int i;
|
|
+
|
|
+ GetPKCS7(self, pkcs7);
|
|
+ i = OBJ_obj2nid(pkcs7->type);
|
|
+ switch(i){
|
|
+ case NID_pkcs7_signed:
|
|
+ crls = pkcs7->d.sign->crl;
|
|
+ break;
|
|
+ case NID_pkcs7_signedAndEnveloped:
|
|
crls = pkcs7->d.signed_and_enveloped->crl;
|
|
break;
|
|
default:
|
|
- certs = crls = NULL;
|
|
+ crls = NULL;
|
|
}
|
|
|
|
- return want_certs ? certs : crls;
|
|
+ return crls;
|
|
}
|
|
|
|
static VALUE
|
|
@@ -608,7 +628,7 @@ ossl_pkcs7_set_certificates(VALUE self,
|
|
STACK_OF(X509) *certs;
|
|
X509 *cert;
|
|
|
|
- certs = pkcs7_get_certs_or_crls(self, 1);
|
|
+ certs = pkcs7_get_certs(self);
|
|
while((cert = sk_X509_pop(certs))) X509_free(cert);
|
|
rb_block_call(ary, rb_intern("each"), 0, 0, ossl_pkcs7_set_certs_i, self);
|
|
|
|
@@ -618,7 +638,7 @@ ossl_pkcs7_set_certificates(VALUE self,
|
|
static VALUE
|
|
ossl_pkcs7_get_certificates(VALUE self)
|
|
{
|
|
- return ossl_x509_sk2ary(pkcs7_get_certs_or_crls(self, 1));
|
|
+ return ossl_x509_sk2ary(pkcs7_get_certs(self));
|
|
}
|
|
|
|
static VALUE
|
|
@@ -648,7 +668,7 @@ ossl_pkcs7_set_crls(VALUE self, VALUE ar
|
|
STACK_OF(X509_CRL) *crls;
|
|
X509_CRL *crl;
|
|
|
|
- crls = pkcs7_get_certs_or_crls(self, 0);
|
|
+ crls = pkcs7_get_crls(self);
|
|
while((crl = sk_X509_CRL_pop(crls))) X509_CRL_free(crl);
|
|
rb_block_call(ary, rb_intern("each"), 0, 0, ossl_pkcs7_set_crls_i, self);
|
|
|
|
@@ -658,7 +678,7 @@ ossl_pkcs7_set_crls(VALUE self, VALUE ar
|
|
static VALUE
|
|
ossl_pkcs7_get_crls(VALUE self)
|
|
{
|
|
- return ossl_x509crl_sk2ary(pkcs7_get_certs_or_crls(self, 0));
|
|
+ return ossl_x509crl_sk2ary(pkcs7_get_crls(self));
|
|
}
|
|
|
|
static VALUE
|