poke-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[COMMITTED] poked: Handle zero-length payloads


From: Mohammad-Reza Nabipoor
Subject: [COMMITTED] poked: Handle zero-length payloads
Date: Tue, 8 Mar 2022 00:25:33 +0330

2022-02-07  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

        * poked/usock.c (usock_client_step): Handle zero-length payloads.
---
 ChangeLog     |  4 ++++
 poked/usock.c | 10 ++++++----
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 44612e8a..78c6b8a5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2022-02-07  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>
+
+       * poked/usock.c (usock_client_step): Handle zero-length payloads.
+
 2022-03-07  Daiki Ueno  <ueno@gnu.org>
 
        * pickles/asn1-ber.pk (BER_Identifier): Fix long-form tag number
diff --git a/poked/usock.c b/poked/usock.c
index df9ca614..4ba24dc6 100644
--- a/poked/usock.c
+++ b/poked/usock.c
@@ -249,10 +249,12 @@ usock_client_step (struct usock_client *c)
             uint16_t len = (uint16_t)c->buf[1] << 8 | c->buf[0];
 
             assert (c->inbuf == NULL);
-            c->state = USOCK_CLIENT_IN_READ_PAYLOAD;
-            c->inbuf = usock_buf_new_size (len);
-            // c->inbuf->tag = ((uint64_t)c->fd << 32) | c->chan; // For debug
-            c->inbuf->tag = c->chan;
+            if (len)
+              {
+                c->state = USOCK_CLIENT_IN_READ_PAYLOAD;
+                c->inbuf = usock_buf_new_size (len);
+                c->inbuf->tag = c->chan;
+              }
             c->bufidx = 0;
             c->buf[0] = c->buf[1] = 0;
           }
-- 
2.35.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]