if (!ctx->mds && !(ctx->mds = sk_EVP_MD_new_null()))
goto err;
/* Add the shared md, no copy needed. */
- if (!sk_EVP_MD_push(ctx->mds, md)) goto err;
+ if (!sk_EVP_MD_push(ctx->mds, (EVP_MD *)md)) goto err;
return 1;
err:
if (!result)
{
TSerr(TS_F_TS_RESP_CREATE_RESPONSE, TS_R_RESPONSE_SETUP_ERROR);
- TS_RESP_CTX_set_status_info_cond(ctx, TS_STATUS_REJECTION,
- "Error during response "
- "generation.");
- /* Check if the status info was set. */
- if (ctx->response
- && ASN1_INTEGER_get(
- TS_RESP_get_status_info(ctx->response)->status)
- == TS_STATUS_GRANTED)
+ if (ctx->response != NULL)
{
- /* Status info wasn't set, don't return a response. */
- TS_RESP_free(ctx->response);
- ctx->response = NULL;
+ if (TS_RESP_CTX_set_status_info_cond(ctx,
+ TS_STATUS_REJECTION, "Error during response "
+ "generation.") == 0)
+ {
+ TS_RESP_free(ctx->response);
+ ctx->response = NULL;
+ }
}
}
response = ctx->response;
TS_MSG_IMPRINT *msg_imprint;
X509_ALGOR *md_alg;
int md_alg_id;
- ASN1_OCTET_STRING *digest;
+ const ASN1_OCTET_STRING *digest;
EVP_MD *md = NULL;
int i;
return 1;
}
-/* Returns the TSA policy based on the rqeuested and acceptable policies. */
+/* Returns the TSA policy based on the requested and acceptable policies. */
static ASN1_OBJECT *TS_RESP_get_policy(TS_RESP_CTX *ctx)
{
ASN1_OBJECT *requested = TS_REQ_get_policy_id(ctx->request);
ASN1_OBJECT *policy = NULL;
int i;
+ if (ctx->default_policy == NULL)
+ {
+ TSerr(TS_F_TS_RESP_GET_POLICY, TS_R_INVALID_NULL_POINTER);
+ return NULL;
+ }
/* Return the default policy if none is requested or the default is
requested. */
if (!requested || !OBJ_cmp(requested, ctx->default_policy))
ASN1_GENERALIZEDTIME *asn1_time = NULL;
long sec, usec;
TS_ACCURACY *accuracy = NULL;
- ASN1_INTEGER *nonce;
+ const ASN1_INTEGER *nonce;
GENERAL_NAME *tsa_name = NULL;
if (!(tst_info = TS_TST_INFO_new())) goto end;
for (i = 0; ok && i < sk_X509_EXTENSION_num(exts); ++i)
{
X509_EXTENSION *ext = sk_X509_EXTENSION_value(exts, i);
- ok = (*ctx->extension_cb)(ctx, ext, (void *)ctx->extension_cb);
+ /* XXXXX The last argument was previously
+ (void *)ctx->extension_cb, but ISO C doesn't permit
+ converting a function pointer to void *. For lack of
+ better information, I'm placing a NULL there instead.
+ The callback can pick its own address out from the ctx
+ anyway...
+ */
+ ok = (*ctx->extension_cb)(ctx, ext, NULL);
}
return ok;