Modified OSSL_parse_url to initialize pport_num to 0.
authorRandall S. Becker <rsbecker@nexbridge.com>
Thu, 1 Jun 2023 19:29:15 +0000 (13:29 -0600)
committerTomas Mraz <tomas@openssl.org>
Fri, 14 Jul 2023 10:04:04 +0000 (12:04 +0200)
This change is intended to provide some safety for uninitialized stack failures
that have appeared in 80-test_cmp_http on NonStop x86 when run in a complex
CI/CD Jenkins environment. This change also adds init_pint() to handle the
initialization of a pointer to int value.

Fixes: #21083
Signed-off-by: Randall S. Becker <randall.becker@nexbridge.ca>
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21109)

crypto/http/http_lib.c

index 911f15908162b91f41e3d66e714e65f7094e749f..3164d01d9e48fe1fd4841598f5bb47605eac1d9d 100644 (file)
@@ -22,6 +22,13 @@ static void init_pstring(char **pstr)
     }
 }
 
+static void init_pint(int *pint)
+{
+    if (pint != NULL) {
+        *pint = 0;
+    }
+}
+
 static int copy_substring(char **dest, const char *start, const char *end)
 {
     return dest == NULL
@@ -54,6 +61,7 @@ int OSSL_parse_url(const char *url, char **pscheme, char **puser, char **phost,
     init_pstring(puser);
     init_pstring(phost);
     init_pstring(pport);
+    init_pint(pport_num);
     init_pstring(ppath);
     init_pstring(pfrag);
     init_pstring(pquery);