gbranden pushed a commit to branch master
in repository groff.

commit 4f6c9b7055702db9e1d7be1afee89e7b93792096
Author: G. Branden Robinson <[email protected]>
AuthorDate: Thu Sep 10 06:40:09 2026 -0500

    [libbib,indxbib]: Fix Savannah #68703 (2/4).
    
    Fix mismatched memory allocation/deallocation techniques, which risks
    undefined behavior (UB) in C++.
    
    * src/libs/libbib/search.cpp (search_item::~search_item): Deallocate
      `name` with free(3) rather than `delete[]`.
---
 ChangeLog                  | 2 ++
 src/include/search.h       | 2 +-
 src/libs/libbib/search.cpp | 2 +-
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index ed916b85e..ef659967b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,6 +7,8 @@
        "<stdlib.h>" header file for `free()` symbol.
        (search_list_iterator::~search_list_iterator): Deallocate
        `query` with free(3) rather than `delete[]`.
+       (search_item::~search_item): Deallocate `name` with free(3)
+       rather than `delete[]`.
 
 2026-09-12  G. Branden Robinson <[email protected]>
 
diff --git a/src/include/search.h b/src/include/search.h
index b8f033318..a919268bc 100644
--- a/src/include/search.h
+++ b/src/include/search.h
@@ -68,7 +68,7 @@ public:
 
 class search_item {
 protected:
-  char *name;
+  char *name; // to be freed with free()
   int filename_id;
 public:
   search_item *next;
diff --git a/src/libs/libbib/search.cpp b/src/libs/libbib/search.cpp
index 847f8b353..dccc44e8d 100644
--- a/src/libs/libbib/search.cpp
+++ b/src/libs/libbib/search.cpp
@@ -118,7 +118,7 @@ search_item::search_item(const char *nm, int fid)
 
 search_item::~search_item()
 {
-  delete[] name;
+  free(name);
 }
 
 int search_item::is_named(const char *nm) const

_______________________________________________
groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit

Reply via email to