With leak sanitizer on, the test for getdelim fails due to a memory leak. The attached patch fixes it. (Please feel free to amend.)
Regards, Tim Output from config.log: configure:26259: checking for working getdelim function configure:26325: gcc-10 -o conftest -O1 -g -fno-omit-frame-pointer -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize =undefined,bool,alignment,null,enum,address,leak,nonnull-attribute -fno-sanitize-recover=all -fsanitize-address-use-afte r-scope conftest.c >&5 configure:26325: $? = 0 configure:26325: ./conftest ================================================================= ==551573==ERROR: LeakSanitizer: detected memory leaks Direct leak of 120 byte(s) in 1 object(s) allocated from: #0 0x7fb818f56e8f in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.6+0xa9e8f) #1 0x7fb8183f51bf in _IO_getdelim /build/glibc-WZtAaN/glibc-2.30/libio/iogetdelim.c:62 #2 0x7fb8198dd72f (<unknown module>) SUMMARY: AddressSanitizer: 120 byte(s) leaked in 1 allocation(s). configure:26325: $? = 1 configure: program exited with status 1
From 0b9451c7c8919121df67b71fdd2f993605c1abc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20R=C3=BChsen?= <tim.rueh...@gmx.de> Date: Mon, 18 May 2020 12:36:16 +0200 Subject: [PATCH] Fix memleak in getdelim C code to pacify leak sanitizer --- ChangeLog | 4 ++++ m4/getdelim.m4 | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 9551d9934..2f7d6d4bb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2020-05-18 Tim Rühsen <tim.ruehsenqgmx.de> + + * m4/getdelim.m4: Fix memleak. + 2020-05-17 Bruno Haible <br...@clisp.org> Clarify intended usage of the license file modules. diff --git a/m4/getdelim.m4 b/m4/getdelim.m4 index 9f4c7f6e9..ac3917b11 100644 --- a/m4/getdelim.m4 +++ b/m4/getdelim.m4 @@ -1,4 +1,4 @@ -# getdelim.m4 serial 14 +# getdelim.m4 serial 15 dnl Copyright (C) 2005-2007, 2009-2020 Free Software Foundation, Inc. dnl @@ -42,6 +42,7 @@ AC_DEFUN([gl_FUNC_GETDELIM], int len = getdelim (&line, &siz, '\n', in); if (!(len == 4 && line && strcmp (line, "foo\n") == 0)) { free (line); fclose (in); return 2; } + free (line); } { /* Test result for a NULL buffer and a non-zero size. -- 2.26.2
signature.asc
Description: OpenPGP digital signature