gbranden pushed a commit to branch master
in repository groff.
commit 6837e0dce513cf90b35c94ff806690381e228e92
Author: G. Branden Robinson <[email protected]>
AuthorDate: Thu Sep 17 19:07:04 2026 -0500
[libbib,indxbib]: Fix Savannah #68703 (3/4).
Fix mismatched memory allocation/deallocation techniques, which risks
undefined behavior (UB) in C++.
* src/libs/libbib/index.cpp
(index_search_item_iterator::~index_search_item_iterator): Deallocate
`query` with free(3) rather than `delete[]`.
---
ChangeLog | 3 +++
src/libs/libbib/index.cpp | 4 ++--
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index ef659967b..58224001c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -9,6 +9,9 @@
`query` with free(3) rather than `delete[]`.
(search_item::~search_item): Deallocate `name` with free(3)
rather than `delete[]`.
+ * src/libs/libbib/index.cpp
+ (index_search_item_iterator::~index_search_item_iterator):
+ Deallocate `query` with free(3) rather than `delete[]`.
2026-09-12 G. Branden Robinson <[email protected]>
diff --git a/src/libs/libbib/index.cpp b/src/libs/libbib/index.cpp
index a142a7083..a1665ca5c 100644
--- a/src/libs/libbib/index.cpp
+++ b/src/libs/libbib/index.cpp
@@ -100,7 +100,7 @@ class index_search_item_iterator : public
search_item_iterator {
char *buf;
int buflen;
linear_searcher searcher;
- char *query;
+ char *query; // to be freed with free()
int get_tag(int tagno, const linear_searcher &, const char **, int *,
reference_id *);
public:
@@ -378,7 +378,7 @@ index_search_item_iterator::~index_search_item_iterator()
{
delete[] temp_list;
delete[] buf;
- delete[] query;
+ free(query);
delete out_of_date_files_iter;
}
_______________________________________________
groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit