Ben Laurie wrote:
> 
> francoise lacambre wrote:
> >
> > Don't you think, in the X509_STORE_get_by_subject function, that the following
> > line
> >                                 vs->current_method=j;
> > would be replaced by :
> >                                 vs->current_method=i;
> 
> Yes!

Hmm ... still looks wrong to me ... I suspect it should do this, but it
isn't my code - Steve?

Index: crypto/x509/x509_lu.c
===================================================================
RCS file: /e/openssl/cvs/openssl/crypto/x509/x509_lu.c,v
retrieving revision 1.24
diff -u -r1.24 x509_lu.c
--- crypto/x509/x509_lu.c       2001/09/01 20:01:58     1.24
+++ crypto/x509/x509_lu.c       2001/11/20 13:58:10
@@ -285,19 +285,21 @@
        X509_STORE *ctx=vs->ctx;
        X509_LOOKUP *lu;
        X509_OBJECT stmp,*tmp;
-       int i,j;
+       int i,j,k;
 
        tmp=X509_OBJECT_retrieve_by_subject(ctx->objs,type,name);
 
        if (tmp == NULL)
                {
-               for (i=vs->current_method;
i<sk_X509_LOOKUP_num(ctx->get_cert_methods); i++)
+               for (i=vs->current_method,k=0;
k<sk_X509_LOOKUP_num(ctx->get_cert_methods); i++,k++)
                        {
+                       if(k ==
sk_X509_LOOKUP_num(ctx->get_cert_methods))
+                               k=0;
                       
lu=sk_X509_LOOKUP_value(ctx->get_cert_methods,i);
                        j=X509_LOOKUP_by_subject(lu,type,name,&stmp);
                        if (j < 0)
                                {
-                               vs->current_method=j;
+                               vs->current_method=k;
                                return j;
                                }
                        else if (j)
@@ -306,7 +308,6 @@
                                break;
                                }
                        }
-               vs->current_method=0;
                if (tmp == NULL)
                        return 0;
                }

> 
> Cheers,
> 
> Ben.
> 
> > in the case where j<0 , i.e. j==X509_LU_RETRY ? i is a LOOKUP method, not j.
> > ------------------------------------------------------------------------------
> > int X509_STORE_get_by_subject(X509_STORE_CTX *vs, int type, X509_NAME *name,
> >              X509_OBJECT *ret)
> >         {
> >         X509_STORE *ctx=vs->ctx;
> >         X509_LOOKUP *lu;
> >         X509_OBJECT stmp,*tmp;
> >         int i,j;
> >
> >         tmp=X509_OBJECT_retrieve_by_subject(ctx->objs,type,name);
> >
> >         if (tmp == NULL)
> >                 {
> >                 for (i=vs->current_method;
> > i<sk_X509_LOOKUP_num(ctx->get_cert_methods); i++)
> >                         {
> >                         lu=sk_X509_LOOKUP_value(ctx->get_cert_methods,i);
> >                         j=X509_LOOKUP_by_subject(lu,type,name,&stmp);
> >                         if (j < 0)
> >                                 {
> > //                              vs->current_method=j;
> >                                 vs->current_method=i;
> >                                 return j;
> >                                 }
> >                         else if (j)
> >                                 {
> >                                 tmp= &stmp;
> >                                 break;
> >                                 }
> >                         }
> >                 vs->current_method=0;
> >                 if (tmp == NULL)
> >                         return 0;
> >                 }
> >
> > /*      if (ret->data.ptr != NULL)
> >                 X509_OBJECT_free_contents(ret); */
> >
> >         ret->type=tmp->type;
> >         ret->data.ptr=tmp->data.ptr;
> >
> >         X509_OBJECT_up_ref_count(ret);
> >
> >         return 1;
> >         }
> >
> > --
> > -------  Francoise LACAMBRE  ------------ BULL I&S ------
> > Tel : 01 30 80 77 51 (237 7751)         Rue Jean Jaures
> > Fax : 01 30 80 65 40 (237 6540)         78340 Les Clayes-sous-Bois
> > mailto:[EMAIL PROTECTED]      Poste Courrier : FRCL P2/130
> > ______________________________________________________________________
> > OpenSSL Project                                 http://www.openssl.org
> > Development Mailing List                       [EMAIL PROTECTED]
> > Automated List Manager                           [EMAIL PROTECTED]
> 
> --
> http://www.apache-ssl.org/ben.html       http://www.thebunker.net/
> 
> "There is no limit to what a man can do or how far he can go if he
> doesn't mind who gets the credit." - Robert Woodruff
> ______________________________________________________________________
> OpenSSL Project                                 http://www.openssl.org
> Development Mailing List                       [EMAIL PROTECTED]
> Automated List Manager                           [EMAIL PROTECTED]

--
http://www.apache-ssl.org/ben.html       http://www.thebunker.net/

"There is no limit to what a man can do or how far he can go if he
doesn't mind who gets the credit." - Robert Woodruff
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to