From 8ae4a0aa882abd9911709012bfbe86015ac820fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=A6=8C=EA=A6=AB=EA=A6=B6=EA=A6=8F=EA=A7=80=EA=A6=A6?= =?UTF-8?q?=EA=A6=BF=EA=A6=A7=EA=A6=AE=EA=A6=91=EA=A6=A9=EA=A6=AD=EA=A7=80?= Date: Fri, 16 Sep 2022 09:06:59 +0800 Subject: State and nonce comparison lines made fewer --- shopify.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/shopify.c b/shopify.c index f75b8ac..2bc239c 100644 --- a/shopify.c +++ b/shopify.c @@ -146,16 +146,18 @@ bool shopify_valid(struct MHD_Connection *conn, const char *url, free(query); if (strcmp(url, redir_url)) return true; - char *state = ((struct shopify_param *)bsearch(&(struct shopify_param) - { "state" }, *params, nparams, - sizeof(struct shopify_param), keycmp))->val; int nsessions = 0; while (sessions[nsessions].shop) nsessions++; qsort(sessions, nsessions, sizeof(struct session), keycmp); - struct session *session = bsearch(&(struct session){ shop }, sessions, - nsessions, sizeof(struct session), keycmp); - if (strcmp(state, session->nonce)) { + if (strcmp(((struct shopify_param *)bsearch(&(struct shopify_param) + { "state" }, *params, nparams, + sizeof(struct shopify_param), + keycmp))->val, + ((struct session *)bsearch(&(struct session) + { shop }, sessions, nsessions, + sizeof(struct session), + keycmp))->nonce)) { clear(*params); return false; } -- cgit v1.2.3