Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Jun 2026 12:36:18 +0000
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Cc:        Kit Dallege <xaum.io@gmail.com>
Subject:   git: ab8ceaaa86ba - main - hcreate(3): fix incorrect claim that hdestroy frees keys
Message-ID:  <6a295a42.3da8e.104bafee@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=ab8ceaaa86baa077fcdc020a0c05ccf88fcd54d1

commit ab8ceaaa86baa077fcdc020a0c05ccf88fcd54d1
Author:     Kit Dallege <xaum.io@gmail.com>
AuthorDate: 2026-03-27 01:57:10 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2026-06-10 12:35:05 +0000

    hcreate(3): fix incorrect claim that hdestroy frees keys
    
    The man page incorrectly stated that hdestroy() calls free(3) for
    each comparison key. The implementation (hdestroy_r.c) only frees
    the internal table structure, not the user-provided keys or data.
    This matches POSIX, which says hdestroy "shall dispose of the
    search table" without mentioning key deallocation.
    
    Update the description to clarify that the caller is responsible
    for freeing any memory associated with table entries.
    
    PR: 291240
    Signed-off-by: Kit Dallege <xaum.io@gmail.com>
    Reviewed by: imp
    Pull Request: https://github.com/freebsd/freebsd-src/pull/2095
---
 lib/libc/stdlib/hcreate.3 | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/lib/libc/stdlib/hcreate.3 b/lib/libc/stdlib/hcreate.3
index 4621850d4661..95a959fcedbb 100644
--- a/lib/libc/stdlib/hcreate.3
+++ b/lib/libc/stdlib/hcreate.3
@@ -26,7 +26,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\" POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd February 6, 2017
+.Dd June 9, 2026
 .Dt HCREATE 3
 .Os
 .Sh NAME
@@ -86,10 +86,11 @@ After the call to
 the data can no longer be considered accessible.
 The
 .Fn hdestroy
-function calls
-.Xr free 3
-for each comparison key in the search table
-but not the data item associated with the key.
+function disposes of the search table but does not free
+the comparison keys or data items stored in it.
+The caller is responsible for freeing any memory associated
+with table entries before calling
+.Fn hdestroy .
 .Pp
 The
 .Fn hsearch


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a295a42.3da8e.104bafee>