[Openvpn-devel,v1] dco_freebsd: Add check_malloc_return after realloc

Message ID 20260507075321.25123-1-gert@greenie.muc.de
State New
Headers
Series [Openvpn-devel,v1] dco_freebsd: Add check_malloc_return after realloc |

Commit Message

Gert Doering May 7, 2026, 7:53 a.m. UTC
  From: Frank Lichtenheld <frank@lichtenheld.com>

cppcheck complained about a potential memleak
due to realloc failure. But trying to handle that
is probably not useful. Just abort like we do
for other malloc failures.

Change-Id: Icd8ea093dfe9f1888570f3d7b786b951b5262e47
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1669
---

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/+/1669
This mail reflects revision 1 of this Change.

Acked-by according to Gerrit (reflected above):
Gert Doering <gert@greenie.muc.de>
  

Comments

Gert Doering May 8, 2026, 3:48 p.m. UTC | #1
Good find.  Arguably this is a bug, even if in the "unlikely to ever happen"
category, so backported to release/2.7 (without the cppcheck file).

Mildy tested on FreeBSD 14 + DCO (... after repairing the t_server setup).

Your patch has been applied to the master and release/2.7 branch.

commit fcc34b135222edf3d53976f406f8db19c19294c0 (master)
commit 1a15b3fa51537592bfda1ea588e28f73ded39caf (release/2.7)
Author: Frank Lichtenheld
Date:   Thu May 7 09:53:15 2026 +0200

     dco_freebsd: Add check_malloc_return after realloc

     Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
     Acked-by: Gert Doering <gert@greenie.muc.de>
     Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1669
     Message-Id: <20260507075321.25123-1-gert@greenie.muc.de>
     URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg36842.html
     Signed-off-by: Gert Doering <gert@greenie.muc.de>


--
kind regards,

Gert Doering
  

Patch

diff --git a/dev-tools/cppcheck-suppression b/dev-tools/cppcheck-suppression
index 1fefb51..c9d4714 100644
--- a/dev-tools/cppcheck-suppression
+++ b/dev-tools/cppcheck-suppression
@@ -49,6 +49,8 @@ 
 knownConditionTrueFalse:src/openvpnmsica/dllmain.c:164
 # FP: cppcheck seems to be confused since we cast the pointer to integer
 memleak:src/plugins/down-root/down-root.c:337
+# IGN: we just abort instead
+memleakOnRealloc:src/openvpn/dco_freebsd.c:845
 # FP: eventmsg.h is not built on Unix
 missingInclude:src/openvpnserv/common.c:25
 # IGN: strlen(NULL) is not nice code, but seems to work
diff --git a/src/openvpn/dco_freebsd.c b/src/openvpn/dco_freebsd.c
index 718cd8b..eaca86b 100644
--- a/src/openvpn/dco_freebsd.c
+++ b/src/openvpn/dco_freebsd.c
@@ -842,6 +842,7 @@ 
 
 retry:
     buf = realloc(buf, buf_size);
+    check_malloc_return(buf);
     drv.ifd_len = buf_size;
     drv.ifd_data = buf;