]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
aws-sigv4: fix potentional NULL pointer arithmetic
authorDaniel Gustafsson <daniel@yesql.se>
Wed, 11 May 2022 08:52:56 +0000 (10:52 +0200)
committerDaniel Gustafsson <daniel@yesql.se>
Wed, 11 May 2022 08:52:56 +0000 (10:52 +0200)
We need to check if the strchr() call returns NULL (due to missing
char) before we use the returned value in arithmetic.  There is no
live bug here, but fixing it before it can become for hygiene.

Closes: #8814
Reviewed-by: Daniel Stenberg <daniel@haxx.se>
lib/http_aws_sigv4.c

index 210c3dbe56576bf899762ec14598fefd156c10e9..3145a9947ae65a6454757e5dfe336bc401e5502f 100644 (file)
@@ -202,12 +202,12 @@ CURLcode Curl_output_aws_sigv4(struct Curl_easy *data, bool proxy)
   if(!service) {
     tmp0 = hostname;
     tmp1 = strchr(tmp0, '.');
-    len = tmp1 - tmp0;
-    if(!tmp1 || len < 1) {
+    if(!tmp1) {
       infof(data, "service missing in parameters or hostname");
       ret = CURLE_URL_MALFORMAT;
       goto fail;
     }
+    len = tmp1 - tmp0;
     service = Curl_memdup(tmp0, len + 1);
     if(!service) {
       goto fail;
@@ -217,12 +217,12 @@ CURLcode Curl_output_aws_sigv4(struct Curl_easy *data, bool proxy)
     if(!region) {
       tmp0 = tmp1 + 1;
       tmp1 = strchr(tmp0, '.');
-      len = tmp1 - tmp0;
-      if(!tmp1 || len < 1) {
+      if(!tmp1) {
         infof(data, "region missing in parameters or hostname");
         ret = CURLE_URL_MALFORMAT;
         goto fail;
       }
+      len = tmp1 - tmp0;
       region = Curl_memdup(tmp0, len + 1);
       if(!region) {
         goto fail;