void CRYPTO_free(void *str)
{
#ifndef OPENSSL_NO_CRYPTO_MDEBUG
    if (call_malloc_debug) {
        CRYPTO_mem_debug_free(str, 0);
        free(str);
        CRYPTO_mem_debug_free(str, 1);
    } else {
        free(str);
    }
#else
    free(str);
#endif
}
['X509_EXTENSION *OCSP_accept_responses_new(char **oids)\n{\n    int nid;\n    STACK_OF(ASN1_OBJECT) *sk = NULL;\n    ASN1_OBJECT *o = NULL;\n    X509_EXTENSION *x = NULL;\n    if ((sk = sk_ASN1_OBJECT_new_null()) == NULL)\n        goto err;\n    while (oids && *oids) {\n        if ((nid = OBJ_txt2nid(*oids)) != NID_undef && (o = OBJ_nid2obj(nid)))\n            sk_ASN1_OBJECT_push(sk, o);\n        oids++;\n    }\n    x = X509V3_EXT_i2d(NID_id_pkix_OCSP_acceptableResponses, 0, sk);\n err:\n    sk_ASN1_OBJECT_pop_free(sk, ASN1_OBJECT_free);\n    return x;\n}', 'int OBJ_txt2nid(const char *s)\n{\n    ASN1_OBJECT *obj;\n    int nid;\n    obj = OBJ_txt2obj(s, 0);\n    nid = OBJ_obj2nid(obj);\n    ASN1_OBJECT_free(obj);\n    return nid;\n}', 'void ASN1_OBJECT_free(ASN1_OBJECT *a)\n{\n    if (a == NULL)\n        return;\n    if (a->flags & ASN1_OBJECT_FLAG_DYNAMIC_STRINGS) {\n#ifndef CONST_STRICT\n        OPENSSL_free((void*)a->sn);\n        OPENSSL_free((void*)a->ln);\n#endif\n        a->sn = a->ln = NULL;\n    }\n    if (a->flags & ASN1_OBJECT_FLAG_DYNAMIC_DATA) {\n        OPENSSL_free((void*)a->data);\n        a->data = NULL;\n        a->length = 0;\n    }\n    if (a->flags & ASN1_OBJECT_FLAG_DYNAMIC)\n        OPENSSL_free(a);\n}', 'void CRYPTO_free(void *str)\n{\n#ifndef OPENSSL_NO_CRYPTO_MDEBUG\n    if (call_malloc_debug) {\n        CRYPTO_mem_debug_free(str, 0);\n        free(str);\n        CRYPTO_mem_debug_free(str, 1);\n    } else {\n        free(str);\n    }\n#else\n    free(str);\n#endif\n}']