[Openvpn-devel,v1] buffer: Change buf_prepend and buf_advance to accept ssize_t for length
Commit Message
From: Frank Lichtenheld <frank@lichtenheld.com>
We already have tests to make sure the value is sane.
Changing the argument to ssize_t allows to use it in
more places without needing to do a cast before the
checks.
Change-Id: I123002255b37160d48ef6481f68a89d03073236b
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1437
---
This change was reviewed on Gerrit and approved by at least one
developer. I request to merge it to master.
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1437
This mail reflects revision 1 of this Change.
Acked-by according to Gerrit (reflected above):
Gert Doering <gert@greenie.muc.de>
Comments
Looks reasonable, compiles fine :-) - and I really should have merged
this one before #1438 (upsetting -Werror compiles for everyone).
Your patch has been applied to the master branch.
commit cb4d5426d0751ce4720fbc7531de51731725a5fb
Author: Frank Lichtenheld
Date: Mon Dec 15 17:05:35 2025 +0100
buffer: Change buf_prepend and buf_advance to accept ssize_t for length
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1437
Message-Id: <20251215160541.24237-1-gert@greenie.muc.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg35099.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
--
kind regards,
Gert Doering
@@ -789,7 +789,7 @@
{
if (buf_string_match_head_str(src, match))
{
- buf_advance(src, (int)strlen(match));
+ buf_advance(src, strlen(match));
return true;
}
else
@@ -1312,7 +1312,7 @@
}
void
-buffer_list_advance(struct buffer_list *ol, int n)
+buffer_list_advance(struct buffer_list *ol, ssize_t n)
{
if (ol->head)
{
@@ -601,26 +601,26 @@
*/
static inline uint8_t *
-buf_prepend(struct buffer *buf, int size)
+buf_prepend(struct buffer *buf, ssize_t size)
{
if (!buf_valid(buf) || size < 0 || size > buf->offset)
{
return NULL;
}
- buf->offset -= size;
- buf->len += size;
+ buf->offset -= (int)size;
+ buf->len += (int)size;
return BPTR(buf);
}
static inline bool
-buf_advance(struct buffer *buf, int size)
+buf_advance(struct buffer *buf, ssize_t size)
{
if (!buf_valid(buf) || size < 0 || buf->len < size)
{
return false;
}
- buf->offset += size;
- buf->len -= size;
+ buf->offset += (int)size;
+ buf->len -= (int)size;
return true;
}
@@ -1175,7 +1175,7 @@
*/
struct buffer *buffer_list_peek(struct buffer_list *ol);
-void buffer_list_advance(struct buffer_list *ol, int n);
+void buffer_list_advance(struct buffer_list *ol, ssize_t n);
void buffer_list_pop(struct buffer_list *ol);
@@ -596,7 +596,7 @@
{
dmsg(D_PS_PROXY_DEBUG, "PORT SHARE PROXY: partial write[%d], tried=%d got=%zd", (int)sd,
pc->buf.len, status);
- buf_advance(&pc->buf, (int)status);
+ buf_advance(&pc->buf, status);
return IOSTAT_EAGAIN_ON_WRITE;
}
else