send debug msg if contains '\n'

Signed-off-by: valord577 <valord577@gmail.com>
diff --git a/library/debug.c b/library/debug.c
index eecde10..839ceba 100644
--- a/library/debug.c
+++ b/library/debug.c
@@ -68,6 +68,7 @@
     va_list argp;
     char str[DEBUG_BUF_SIZE];
     int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+    int newline = -1;
 
     if (NULL == ssl              ||
         NULL == ssl->conf        ||
@@ -80,16 +81,26 @@
     ret = mbedtls_vsnprintf(str, DEBUG_BUF_SIZE, format, argp);
     va_end(argp);
 
-    if (ret >= 0 && ret < DEBUG_BUF_SIZE - 1) {
-        str[ret]     = '\n';
-        str[ret + 1] = '\0';
-    }
-    else
-    {
-        str[DEBUG_BUF_SIZE - 2] = '\n';
+    if (DEBUG_BUF_SIZE >= 2) {
+        if (ret < 0) {
+            newline = 0;
+        } else {
+            newline = ret;
+            if (ret >= DEBUG_BUF_SIZE - 1) {
+                newline = DEBUG_BUF_SIZE - 2;
+            }
+        }
     }
 
-    debug_send_line(ssl, level, file, line, str);
+    /*
+     * Send if str contains '\n'.
+     */
+    if (newline >= 0) {
+        str[newline]     = '\n';
+        str[newline + 1] = '\0';
+
+        debug_send_line(ssl, level, file, line, str);
+    }
 }
 
 void mbedtls_debug_print_ret(const mbedtls_ssl_context *ssl, int level,