From e4780b68ddfb515049c95dce0a677cfad5e79b11 Mon Sep 17 00:00:00 2001
From: armatusmiles <akurotych@gmail.com>
Date: Thu, 15 Nov 2018 11:07:46 +0200
Subject: [PATCH] [*] fix bug. Add null terminated char to response

---
 enc_server/dap_enc_http.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/enc_server/dap_enc_http.c b/enc_server/dap_enc_http.c
index 85d95a4..5811609 100644
--- a/enc_server/dap_enc_http.c
+++ b/enc_server/dap_enc_http.c
@@ -74,18 +74,19 @@ void enc_http_proc(struct dap_http_simple *cl_st, void * arg)
 
         dap_enc_ks_key_t * key_ks = dap_enc_ks_add(NULL);
 
-        char encrypt_msg[DAP_ENC_BASE64_ENCODE_SIZE(msrln_key->pub_key_data_size)];
-
-        dap_enc_base64_encode(msrln_key->pub_key_data, msrln_key->pub_key_data_size, encrypt_msg, DAP_ENC_DATA_TYPE_B64);
+        char encrypt_msg[DAP_ENC_BASE64_ENCODE_SIZE(msrln_key->pub_key_data_size) + 1];
+        size_t encrypt_msg_size = dap_enc_base64_encode(msrln_key->pub_key_data, msrln_key->pub_key_data_size, encrypt_msg, DAP_ENC_DATA_TYPE_B64);
+        encrypt_msg[encrypt_msg_size] = '\0';
 
         key_ks->key = dap_enc_key_new_generate(DAP_ENC_KEY_TYPE_IAES,
                                                msrln_key->priv_key_data, // shared key
                                                msrln_key->priv_key_data_size,
                                                key_ks->id, DAP_ENC_KS_KEY_ID_SIZE, 0);
 
-        char encrypt_id[DAP_ENC_BASE64_ENCODE_SIZE(DAP_ENC_KS_KEY_ID_SIZE)];
+        char encrypt_id[DAP_ENC_BASE64_ENCODE_SIZE(DAP_ENC_KS_KEY_ID_SIZE) + 1];
 
-        dap_enc_base64_encode(key_ks->id, DAP_ENC_KS_KEY_ID_SIZE, encrypt_id, DAP_ENC_DATA_TYPE_B64);
+        size_t encrypt_id_size = dap_enc_base64_encode(key_ks->id, DAP_ENC_KS_KEY_ID_SIZE, encrypt_id, DAP_ENC_DATA_TYPE_B64);
+        encrypt_id[encrypt_id_size] = '\0';
 
         dap_http_simple_reply_f(cl_st, "%s %s", encrypt_id, encrypt_msg);
 
@@ -138,7 +139,7 @@ enc_http_delegate_t *enc_http_request_decode(struct dap_http_simple *cl_st)
         size_t url_path_size=strlen(cl_st->http->url_path);
         if(url_path_size){
             //    dg->url_path=calloc(1,url_path_size+1);
-            dg->url_path_size=dap_enc_decode(key, cl_st->http->url_path,url_path_size,(void **)&dg->url_path,l_enc_type);
+            dg->url_path_size=dap_enc_decode(key, cl_st->http->url_path,url_path_size,&dg->url_path,l_enc_type);
             dg->url_path[dg->url_path_size] = 0;
             log_it(L_DEBUG,"URL path after decode '%s'",dg->url_path );
             // log_it(L_DEBUG,"URL path before decode: '%s' after decode '%s'",cl_st->http->url_path,dg->url_path );
@@ -148,7 +149,7 @@ enc_http_delegate_t *enc_http_request_decode(struct dap_http_simple *cl_st)
 
         if(in_query_size){
             // dg->in_query=calloc(1,in_query_size+1);
-            dg->in_query_size=dap_enc_decode(key, cl_st->http->in_query_string,in_query_size,(void**)&dg->in_query,l_enc_type);
+            dg->in_query_size=dap_enc_decode(key, cl_st->http->in_query_string,in_query_size,&dg->in_query,l_enc_type);
             dg->in_query[dg->in_query_size] = 0;
             log_it(L_DEBUG,"Query string after decode '%s'",dg->in_query);
         }
-- 
GitLab