From c8d197f6b9aa1b639ca451ae54dc3487adeac07a Mon Sep 17 00:00:00 2001
From: ENGO150 <v.smejkal06@gmail.com>
Date: Thu, 30 Jan 2025 19:58:44 +0100
Subject: [PATCH] returning length in base64_decode

---
 src/chat/crypto.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/chat/crypto.c b/src/chat/crypto.c
index 79315e5..8f394a4 100644
--- a/src/chat/crypto.c
+++ b/src/chat/crypto.c
@@ -66,14 +66,14 @@ char *base64_encode(char *message, size_t length)
     return encoded_message;
 }
 
-char *base64_decode(char *encoded_message)
+char *base64_decode(char *encoded_message, size_t *length)
 {
     //VARIABLES
     BIO *bio;
     BIO *b64;
     char *separator_ptr = strrchr(encoded_message, WHY2_CHAT_BASE64_LENGTH_DELIMITER); //GET THE DELIMITER POINTER
-    size_t length = strtoull(separator_ptr + 1, NULL, 10);
-    char* decoded_message = why2_malloc(length + 1);
+    *length = strtoull(separator_ptr + 1, NULL, 10);
+    char* decoded_message = why2_malloc(*length + 1);
     int decoded_length;
 
     //INIT BIOs
@@ -83,7 +83,7 @@ char *base64_decode(char *encoded_message)
     bio = BIO_push(b64, bio);
 
     //DECODE
-    decoded_length = BIO_read(bio, decoded_message, length);
+    decoded_length = BIO_read(bio, decoded_message, *length);
 
     //NULL-TERM
     decoded_message[decoded_length] = '\0';