From b999e18edaeef068ab35aa0e5b79537af99033a3 Mon Sep 17 00:00:00 2001 From: Thomas Mannfred Carlsson Date: Sat, 7 Feb 2026 20:42:50 +0200 Subject: [PATCH 1/3] Bail on zero length buffer to rb_linebuf_get --- libratbox/src/linebuf.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libratbox/src/linebuf.c b/libratbox/src/linebuf.c index 32d09a60..9c02e3ba 100644 --- a/libratbox/src/linebuf.c +++ b/libratbox/src/linebuf.c @@ -446,6 +446,9 @@ rb_linebuf_get(rb_buf_head_t * bufhead, char *buf, size_t buflen, bool partial, size_t cpylen; char *start, *ch; + if(buflen == 0) + return 0; + /* make sure we have a line */ if(bufhead->list.head == NULL) return 0; /* Obviously not.. hrm. */ @@ -897,4 +900,3 @@ unsigned int rb_linebuf_numlines(rb_buf_head_t *bufhead) { return bufhead->numlines; } - From b9bdb7a2e5c7df690e8585e16c184f3ac129a7bb Mon Sep 17 00:00:00 2001 From: Thomas Mannfred Carlsson Date: Sat, 7 Feb 2026 23:15:20 +0200 Subject: [PATCH 2/3] Assert invalid buflen --- libratbox/src/linebuf.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libratbox/src/linebuf.c b/libratbox/src/linebuf.c index 9c02e3ba..1dbf4b4c 100644 --- a/libratbox/src/linebuf.c +++ b/libratbox/src/linebuf.c @@ -446,8 +446,7 @@ rb_linebuf_get(rb_buf_head_t * bufhead, char *buf, size_t buflen, bool partial, size_t cpylen; char *start, *ch; - if(buflen == 0) - return 0; + assert(buflen>0); /* make sure we have a line */ if(bufhead->list.head == NULL) From 0e5ac8bfca863b030c71aee02e70b757a19acc2f Mon Sep 17 00:00:00 2001 From: Thomas Mannfred Carlsson Date: Sat, 7 Feb 2026 23:18:07 +0200 Subject: [PATCH 3/3] lrb_assert for invalid buflen --- libratbox/src/linebuf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libratbox/src/linebuf.c b/libratbox/src/linebuf.c index 1dbf4b4c..c5472dfc 100644 --- a/libratbox/src/linebuf.c +++ b/libratbox/src/linebuf.c @@ -446,7 +446,7 @@ rb_linebuf_get(rb_buf_head_t * bufhead, char *buf, size_t buflen, bool partial, size_t cpylen; char *start, *ch; - assert(buflen>0); + lrb_assert(buflen > 0); /* make sure we have a line */ if(bufhead->list.head == NULL)