diff --git a/http_server/http_client/dap_http_client.c b/http_server/http_client/dap_http_client.c
index e5e8cab959325e13a96839099bab6a770df6f31c..fcabe669c0ff80a7037735c9103f4a8484aa6fac 100755
--- a/http_server/http_client/dap_http_client.c
+++ b/http_server/http_client/dap_http_client.c
@@ -315,7 +315,7 @@ static inline void ReportErrorAndRestart( dap_client_remote_t *cl, dap_http_clie
  */
 void dap_http_client_read( dap_client_remote_t *cl, void *arg )
 {
-  char buf_line[4096];
+    char buf_line[4096] = {'\0'};
   dap_http_client_t *cl_ht = DAP_HTTP_CLIENT( cl );
 
 //  log_it( L_DEBUG, "dap_http_client_read..." );
@@ -329,12 +329,18 @@ void dap_http_client_read( dap_client_remote_t *cl, void *arg )
       char  *peol;
       uint32_t eol;
 
-      if ( !(peol = (char *)memchr(cl->buf_in, 10, cl->buf_in_size)) ) { /// search LF
-        break;
+      if (!(peol = (char*)memchr(cl->buf_in, 10, cl->buf_in_size))) { /// search LF
+          peol = (char*)memchr(cl->buf_in, 13, cl->buf_in_size));
       }
 
-      if ( !(eol = peol - cl->buf_in) ) {
-        break;
+      if (peol) {
+          eol = peol - cl->buf_in;
+          if (eol <= 0) {
+              eol = cl->buf_in_size - 2;
+          }
+      } else {
+          log_it( L_WARNING, "Single-line, possibly trash, input detected");
+          eol = cl->buf_in_size - 2;
       }
 
       if ( eol + 3 >= sizeof(buf_line) ) {
@@ -423,6 +429,7 @@ void dap_http_client_read( dap_client_remote_t *cl, void *arg )
 
       if ( !(peol = (char *)memchr(cl->buf_in, 10, cl->buf_in_size)) ) { /// search LF
         log_it( L_WARNING, "DAP_HTTP_CLIENT_STATE_HEADERS: no LF" );
+        ReportErrorAndRestart( cl, cl_ht );
         break;
       }