On Tue, Jan 18, 2022 at 05:20:45PM +0100, Theo Buehler wrote:
> On Tue, Jan 18, 2022 at 04:16:17PM +0100, Claudio Jeker wrote:
> > This diff cleans up cert.c a bit.
> > 
> > It removes the X509 handle from cert_parse() and ta_parse(). Callers
> > should instead use cert->x509. No need to double the work on us here.
> 
> I never understood the point of this handle and I know I chased it down
> several times since it confused me. Glad to see it go.
> 
> > While there switch auth_insert() to a void function. This function can
> > not fail. Again the result is simpler code in parser.c
> 
> To save anton some work: the signature change of *_parse() will need
> adjustments in regress. With those,

Will have a look.

> > -           if ((opk = X509_get_pubkey(*xp)) == NULL)
> > +           if ((opk = X509_get_pubkey(p->x509)) == NULL)
> 
> You could switch this to X509_get0_pubkey() and get rid of the
> EVP_PKEY_free(opk) a few lines down.
> 

Like this?

-- 
:wq Claudio

Index: cert.c
===================================================================
RCS file: /cvs/src/usr.sbin/rpki-client/cert.c,v
retrieving revision 1.51
diff -u -p -r1.51 cert.c
--- cert.c      18 Jan 2022 16:36:49 -0000      1.51
+++ cert.c      18 Jan 2022 16:38:15 -0000
@@ -1168,7 +1168,7 @@ ta_parse(const char *fn, const unsigned 
                pk = d2i_PUBKEY(NULL, &pkey, pkeysz);
                assert(pk != NULL);
 
-               if ((opk = X509_get_pubkey(p->x509)) == NULL)
+               if ((opk = X509_get0_pubkey(p->x509)) == NULL)
                        cryptowarnx("%s: RFC 6487 (trust anchor): "
                            "missing pubkey", fn);
                else if (EVP_PKEY_cmp(pk, opk) != 1)
@@ -1178,7 +1178,6 @@ ta_parse(const char *fn, const unsigned 
                        rc = 1;
 
                EVP_PKEY_free(pk);
-               EVP_PKEY_free(opk);
        }
 
        if (rc == 0) {

Reply via email to