]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-oauth2: Make sure fields are always initialized
authorAki Tuomi <aki.tuomi@dovecot.fi>
Tue, 6 Jun 2017 09:47:53 +0000 (12:47 +0300)
committerAki Tuomi <aki.tuomi@dovecot.fi>
Tue, 6 Jun 2017 09:47:53 +0000 (12:47 +0300)
src/lib-oauth2/oauth2-introspect.c
src/lib-oauth2/oauth2-refresh.c
src/lib-oauth2/oauth2-token-validate.c

index 79800fe0b229818beae822faa62a56f98322fda3..62bfe11cf735626d07aeb365a90f4d5fc7200eca 100644 (file)
@@ -47,6 +47,7 @@ oauth2_introspect_response(const struct http_response *response,
                        oauth2_introspect_continue(req, FALSE, "Missing response body");
                        return;
                }
+               p_array_init(&req->fields, req->pool, 1);
                req->is = response->payload;
                i_stream_ref(req->is);
                req->parser = json_parser_init(req->is);
index e7b5455055045aa35593533f70512dd63b699645..777a7cb384bc6c36a00e141655485079ce4468e4 100644 (file)
@@ -87,6 +87,7 @@ oauth2_refresh_response(const struct http_response *response,
                        oauth2_refresh_continue(req, FALSE, "Missing response body");
                        return;
                }
+               p_array_init(&req->fields, req->pool, 1);
                req->is = response->payload;
                i_stream_ref(req->is);
                req->parser = json_parser_init(req->is);
index af47b0ac57c8efd1cec86c2d908edad9be2704c3..4982ecea95ad4a22c03c323f66e95810e1a801e7 100644 (file)
@@ -30,6 +30,8 @@ oauth2_token_validate_continue(struct oauth2_request *req, bool success,
        struct oauth2_token_validation_result res;
        i_zero(&res);
 
+       i_assert(array_is_created(&req->fields));
+
        res.success = success;
        res.error = error;
        res.valid = req->valid;
@@ -69,9 +71,9 @@ oauth2_token_validate_response(const struct http_response *response,
                        req->valid = TRUE;
                else
                        req->valid = FALSE;
+               p_array_init(&req->fields, req->pool, 1);
                /* 2xx is sufficient for token validation */
                if (response->payload == NULL) {
-                       p_array_init(&req->fields, req->pool, 1);
                        oauth2_token_validate_continue(req, TRUE, NULL);
                        return;
                }