static int ocsp_server_cb(SSL *s, void *arg)
{
    int *argi = (int *)arg;
    unsigned char *copy = NULL;
    STACK_OF(OCSP_RESPID) *ids = NULL;
    OCSP_RESPID *id = NULL;
    if (*argi == 2) {
        SSL_get_tlsext_status_ids(s, &ids);
        if (ids == NULL || sk_OCSP_RESPID_num(ids) != 1)
            return SSL_TLSEXT_ERR_ALERT_FATAL;
        id = sk_OCSP_RESPID_value(ids, 0);
        if (id == NULL || !OCSP_RESPID_match(id, ocspcert))
            return SSL_TLSEXT_ERR_ALERT_FATAL;
    } else if (*argi != 1) {
        return SSL_TLSEXT_ERR_ALERT_FATAL;
    }
    if (!TEST_ptr(copy = OPENSSL_memdup(orespder, sizeof(orespder))))
        return SSL_TLSEXT_ERR_ALERT_FATAL;
    SSL_set_tlsext_status_ocsp_resp(s, copy, sizeof(orespder));
    ocsp_server_called = 1;
    return SSL_TLSEXT_ERR_OK;
}
['static int ocsp_server_cb(SSL *s, void *arg)\n{\n    int *argi = (int *)arg;\n    unsigned char *copy = NULL;\n    STACK_OF(OCSP_RESPID) *ids = NULL;\n    OCSP_RESPID *id = NULL;\n    if (*argi == 2) {\n        SSL_get_tlsext_status_ids(s, &ids);\n        if (ids == NULL || sk_OCSP_RESPID_num(ids) != 1)\n            return SSL_TLSEXT_ERR_ALERT_FATAL;\n        id = sk_OCSP_RESPID_value(ids, 0);\n        if (id == NULL || !OCSP_RESPID_match(id, ocspcert))\n            return SSL_TLSEXT_ERR_ALERT_FATAL;\n    } else if (*argi != 1) {\n        return SSL_TLSEXT_ERR_ALERT_FATAL;\n    }\n    if (!TEST_ptr(copy = OPENSSL_memdup(orespder, sizeof(orespder))))\n        return SSL_TLSEXT_ERR_ALERT_FATAL;\n    SSL_set_tlsext_status_ocsp_resp(s, copy, sizeof(orespder));\n    ocsp_server_called = 1;\n    return SSL_TLSEXT_ERR_OK;\n}', 'void *CRYPTO_memdup(const void *data, size_t siz, const char* file, int line)\n{\n    void *ret;\n    if (data == NULL || siz >= INT_MAX)\n        return NULL;\n    ret = CRYPTO_malloc(siz, file, line);\n    if (ret == NULL) {\n        CRYPTOerr(CRYPTO_F_CRYPTO_MEMDUP, ERR_R_MALLOC_FAILURE);\n        return NULL;\n    }\n    return memcpy(ret, data, siz);\n}', 'void *CRYPTO_malloc(size_t num, const char *file, int line)\n{\n    void *ret = NULL;\n    INCREMENT(malloc_count);\n    if (malloc_impl != NULL && malloc_impl != CRYPTO_malloc)\n        return malloc_impl(num, file, line);\n    if (num == 0)\n        return NULL;\n    FAILTEST();\n    if (allow_customize) {\n        allow_customize = 0;\n    }\n#ifndef OPENSSL_NO_CRYPTO_MDEBUG\n    if (call_malloc_debug) {\n        CRYPTO_mem_debug_malloc(NULL, num, 0, file, line);\n        ret = malloc(num);\n        CRYPTO_mem_debug_malloc(ret, num, 1, file, line);\n    } else {\n        ret = malloc(num);\n    }\n#else\n    (void)(file); (void)(line);\n    ret = malloc(num);\n#endif\n    return ret;\n}', 'int test_ptr(const char *file, int line, const char *s, const void *p)\n{\n    if (p != NULL)\n        return 1;\n    test_fail_message(NULL, file, line, "ptr", s, "NULL", "!=", "%p", p);\n    return 0;\n}']