changeset 22231:0cd646579540

lib-oauth2: Make sure fields are always initialized
author Aki Tuomi <aki.tuomi@dovecot.fi>
date Tue, 06 Jun 2017 12:47:53 +0300
parents b187ee84347f
children 1a38704403db
files src/lib-oauth2/oauth2-introspect.c src/lib-oauth2/oauth2-refresh.c src/lib-oauth2/oauth2-token-validate.c
diffstat 3 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-oauth2/oauth2-introspect.c	Tue Jun 06 12:44:55 2017 +0300
+++ b/src/lib-oauth2/oauth2-introspect.c	Tue Jun 06 12:47:53 2017 +0300
@@ -47,6 +47,7 @@
 			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);
--- a/src/lib-oauth2/oauth2-refresh.c	Tue Jun 06 12:44:55 2017 +0300
+++ b/src/lib-oauth2/oauth2-refresh.c	Tue Jun 06 12:47:53 2017 +0300
@@ -87,6 +87,7 @@
 			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);
--- a/src/lib-oauth2/oauth2-token-validate.c	Tue Jun 06 12:44:55 2017 +0300
+++ b/src/lib-oauth2/oauth2-token-validate.c	Tue Jun 06 12:47:53 2017 +0300
@@ -30,6 +30,8 @@
 	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 @@
 			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;
 		}