Memory leaks in system.certificates implementation due to possible exception. Example:
https://github.com/ClickHouse/ClickHouse/pull/37142/files#diff-1e24e43bfc38cec9770c3cc831b14d045c8138a60d7b77de8d32d96f4a2387e7R110

ref #37142
char * subject = X509_NAME_oneline(cert->cert_info->subject, nullptr, 0);
    if (subject)
    {
        res_columns[col]->insert(subject);
        OPENSSL_free(subject);
    }
    else
        res_columns[col]->insertDefault();
    ++col;
    if (X509_PUBKEY * pkey = X509_get_X509_PUBKEY(cert))
    {
        char buf[1024] = {0};
        ASN1_OBJECT *ppkalg = nullptr;
        const unsigned char *pk = nullptr;
        int ppklen = 0;
        X509_ALGOR *pa = nullptr;
        if (X509_PUBKEY_get0_param(&ppkalg, &pk, &ppklen, &pa, pkey) &&
            i2a_ASN1_OBJECT(b, ppkalg) > 0 && BIO_read(b, buf, sizeof(buf)) > 0)
                res_columns[col]->insert(buf);
        else
            res_columns[col]->insertDefault();
    }
    else
        res_columns[col]->insertDefault();
    ++col;
    res_columns[col++]->insert(path);
    res_columns[col++]->insert(def);
    BIO_free(b);
}
static void enumCertificates(const std::string & dir, bool def, MutableColumns & res_columns)