[Asterisk-code-review] utils.c: NULL terminate ast_base64decode_string. (asterisk[master])

Joshua Colp asteriskteam at digium.com
Thu Aug 6 12:19:50 CDT 2020


Joshua Colp has submitted this change. ( https://gerrit.asterisk.org/c/asterisk/+/14723 )

Change subject: utils.c: NULL terminate ast_base64decode_string.
......................................................................

utils.c: NULL terminate ast_base64decode_string.

With the addition of STIR/SHAKEN, the function ast_base64decode_string
was added for convenience since there is a lot of converting done during
the STIR/SHAKEN process. This function returned the decoded string for
you, but did not NULL terminate it, causing some issues (specifically
with MALLOC_DEBUG). Now, the returned string is NULL terminated, and the
documentation has been updated to reflect this.

Change-Id: Icdd7d05b323b0c47ff6ed43492937a03641bdcf5
---
M include/asterisk/utils.h
M main/utils.c
2 files changed, 3 insertions(+), 2 deletions(-)

Approvals:
  Joshua Colp: Looks good to me, approved; Approved for Submit
  Sean Bright: Looks good to me, but someone else must approve



diff --git a/include/asterisk/utils.h b/include/asterisk/utils.h
index f6280eb..0ee11ee 100644
--- a/include/asterisk/utils.h
+++ b/include/asterisk/utils.h
@@ -267,7 +267,7 @@
  * \brief Same as ast_base64decode, but does the math for you and returns
  * a decoded string
  *
- * \note The returned string will need to be freed later
+ * \note The returned string will need to be freed later and IS NULL terminated
  *
  * \param src The source buffer
  *
diff --git a/main/utils.c b/main/utils.c
index 0b6c6493..827ee2e 100644
--- a/main/utils.c
+++ b/main/utils.c
@@ -331,12 +331,13 @@
 	}
 
 	decoded_len = (encoded_len / 4 * 3) - padding;
-	decoded_string = ast_calloc(1, decoded_len);
+	decoded_string = ast_malloc(decoded_len + 1);
 	if (!decoded_string) {
 		return NULL;
 	}
 
 	ast_base64decode(decoded_string, src, decoded_len);
+	decoded_string[decoded_len] = '\0';
 
 	return (char *)decoded_string;
 }

-- 
To view, visit https://gerrit.asterisk.org/c/asterisk/+/14723
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings

Gerrit-Project: asterisk
Gerrit-Branch: master
Gerrit-Change-Id: Icdd7d05b323b0c47ff6ed43492937a03641bdcf5
Gerrit-Change-Number: 14723
Gerrit-PatchSet: 3
Gerrit-Owner: Benjamin Keith Ford <bford at digium.com>
Gerrit-Reviewer: Friendly Automation
Gerrit-Reviewer: Joshua Colp <jcolp at sangoma.com>
Gerrit-Reviewer: Sean Bright <sean.bright at gmail.com>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20200806/f0900fb0/attachment.html>


More information about the asterisk-code-review mailing list