commit 3b96a9805a59c33681484baeb5f8793362dd1669
parent 326b063a3f0c83de03a5c0f247e70e33415e0fdf
Author: Christian Grothoff <christian@grothoff.org>
Date: Mon, 6 Jul 2026 11:20:31 +0200
properly support case where redirect_uri is omitted and only registered
Diffstat:
1 file changed, 18 insertions(+), 17 deletions(-)
diff --git a/src/challengerdb/authorize_start.c b/src/challengerdb/authorize_start.c
@@ -30,19 +30,19 @@
enum GNUNET_DB_QueryStatus
CHALLENGERDB_authorize_start (struct CHALLENGERDB_PostgresContext *ctx,
- const struct CHALLENGER_ValidationNonceP *nonce,
- uint64_t client_id,
- const char *client_scope,
- const char *client_state,
- const char *client_redirect_uri,
- const char *code_challenge,
- uint32_t code_challenge_method,
- json_t **last_address,
- uint32_t *address_attempts_left,
- uint32_t *pin_transmissions_left,
- uint32_t *auth_attempts_left,
- bool *solved,
- struct GNUNET_TIME_Absolute *last_tx_time)
+ const struct CHALLENGER_ValidationNonceP *nonce,
+ uint64_t client_id,
+ const char *client_scope,
+ const char *client_state,
+ const char *client_redirect_uri,
+ const char *code_challenge,
+ uint32_t code_challenge_method,
+ json_t **last_address,
+ uint32_t *address_attempts_left,
+ uint32_t *pin_transmissions_left,
+ uint32_t *auth_attempts_left,
+ bool *solved,
+ struct GNUNET_TIME_Absolute *last_tx_time)
{
struct GNUNET_PQ_QueryParam params[] = {
GNUNET_PQ_query_param_auto_from_type (nonce),
@@ -84,12 +84,14 @@ CHALLENGERDB_authorize_start (struct CHALLENGERDB_PostgresContext *ctx,
"UPDATE validations SET"
" client_scope=$3"
" ,client_state=$4"
- " ,client_redirect_uri=$5::VARCHAR"
+ " ,client_redirect_uri=COALESCE($5::VARCHAR,client_redirect_uri)"
" ,code_challenge=$6"
" ,code_challenge_method=$7"
" WHERE nonce=$1"
" AND client_serial_id=$2"
- " AND ($5::VARCHAR=COALESCE(client_redirect_uri,$5::VARCHAR))"
+ " AND ( ($5::VARCHAR=client_redirect_uri)"
+ " OR ( ($5::VARCHAR IS NULL)"
+ " AND (client_redirect_uri IS NOT NULL) ) )"
" RETURNING"
" address"
" ,address_attempts_left"
@@ -101,4 +103,4 @@ CHALLENGERDB_authorize_start (struct CHALLENGERDB_PostgresContext *ctx,
"authorize_start_validation",
params,
rs);
-}
-\ No newline at end of file
+}