[Openvpn-devel,v3] buffer: Fix some issues with -DVERIFY_ALIGNMENT
Commit Message
From: Frank Lichtenheld <frank@lichtenheld.com>
- Fix some uninitalised fields due to BUF_INIT_TRACKING
(found by cppcheck and the original reason for this
change).
- Fix "unused functions" if only BUF_INIT_TRACKING is
defined.
- Fix conversion error
Change-Id: I3ecb76d9022dcd7dae92eb5e9d62e5f018744883
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1666
---
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/+/1666
This mail reflects revision 3 of this Change.
Acked-by according to Gerrit (reflected above):
Gert Doering <gert@greenie.muc.de>
Comments
You and your friend cppcheck find interesting conditional paths... ;-)
Stared at code, makes sense.
Your patch has been applied to the master branch.
commit b6f09d015191eef75607653f47333c770d74db61
Author: Frank Lichtenheld
Date: Wed May 13 11:22:45 2026 +0200
buffer: Fix some issues with -DVERIFY_ALIGNMENT
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1666
Message-Id: <20260513092251.28857-1-gert@greenie.muc.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg36901.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
--
kind regards,
Gert Doering
@@ -64,14 +64,13 @@
#endif
{
struct buffer buf;
+ CLEAR(buf);
if (!buf_size_valid(size))
{
buf_size_error(size);
}
buf.capacity = (int)size;
- buf.offset = 0;
- buf.len = 0;
#ifdef DMALLOC
buf.data = openvpn_dmalloc(file, line, size);
#else
@@ -90,13 +89,13 @@
#endif
{
struct buffer buf;
+ CLEAR(buf);
+
if (!buf_size_valid(size))
{
buf_size_error(size);
}
buf.capacity = (int)size;
- buf.offset = 0;
- buf.len = 0;
#ifdef DMALLOC
buf.data = (uint8_t *)gc_malloc_debug(size, false, gc, file, line);
#else
@@ -120,6 +119,10 @@
ret.capacity = buf->capacity;
ret.offset = buf->offset;
ret.len = buf->len;
+#ifdef BUF_INIT_TRACKING
+ ret.debug_file = buf->debug_file;
+ ret.debug_line = buf->debug_line;
+#endif
#ifdef DMALLOC
ret.data = (uint8_t *)openvpn_dmalloc(file, line, buf->capacity);
#else
@@ -140,6 +143,7 @@
return buf_init_dowork(buf, offset);
}
+#ifdef VERIFY_ALIGNMENT
static inline int
buf_debug_line(const struct buffer *buf)
{
@@ -151,6 +155,7 @@
{
return buf->debug_file;
}
+#endif
#else /* ifdef BUF_INIT_TRACKING */
@@ -1152,7 +1157,7 @@
if (buf && buf->len)
{
msglvl_t msglevel = D_ALIGN_DEBUG;
- const unsigned int u = (unsigned int)BPTR(buf);
+ const uintptr_t u = (uintptr_t)BPTR(buf);
if (u & (PAYLOAD_ALIGN - 1))
{