[packages/bctoolbox] - added patch to remove two unused functions which trigger use-after-free warning

qboosh qboosh at pld-linux.org
Sat Apr 8 12:15:42 CEST 2023


commit 0535db47ec0bc332d4ba17b2f2e8c4a1bddbc79c
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sat Apr 8 12:18:12 2023 +0200

    - added patch to remove two unused functions which trigger use-after-free warning

 bctoolbox-use-after-free.patch | 23 +++++++++++++++++++++++
 bctoolbox.spec                 |  2 ++
 2 files changed, 25 insertions(+)
---
diff --git a/bctoolbox.spec b/bctoolbox.spec
index c4eca4f..982f08d 100644
--- a/bctoolbox.spec
+++ b/bctoolbox.spec
@@ -19,6 +19,7 @@ Group:		Libraries
 Source0:	https://gitlab.linphone.org/BC/public/bctoolbox/-/archive/%{version}/%{name}-%{version}.tar.bz2
 # Source0-md5:	bd3d6423b8fcc03035109434d74ca4c0
 Patch0:		%{name}-mbedtlsv3.patch
+Patch1:		%{name}-use-after-free.patch
 URL:		https://linphone.org/
 BuildRequires:	bcunit-devel >= 5.2.0
 BuildRequires:	cmake >= 3.2
@@ -67,6 +68,7 @@ Statyczne biblioteki bctoolbox.
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
 
 %build
 install -d builddir
diff --git a/bctoolbox-use-after-free.patch b/bctoolbox-use-after-free.patch
new file mode 100644
index 0000000..5af587a
--- /dev/null
+++ b/bctoolbox-use-after-free.patch
@@ -0,0 +1,23 @@
+Remove two functions which return pointer to deleted object:
+bctoolbox-5.2.49/src/containers/map.cc:234:16: error: pointer 'it' used after 'void operator delete(void*)' [-Werror=use-after-free]
+bctoolbox-5.2.49/src/containers/map.cc:239:16: error: pointer 'it' used after 'void operator delete(void*)' [-Werror=use-after-free]
+
+--- bctoolbox-5.2.49/src/containers/map.cc.orig	2023-04-06 12:17:19.000000000 +0200
++++ bctoolbox-5.2.49/src/containers/map.cc	2023-04-08 12:09:02.613758031 +0200
+@@ -228,16 +228,6 @@ extern "C" bctbx_iterator_t *bctbx_itera
+ extern "C" bctbx_iterator_t *bctbx_iterator_cchar_get_next(bctbx_iterator_t *it) {
+ 	return bctbx_iterator_get_next_type<mmap_cchar_t>(it);
+ }
+-extern "C" bctbx_iterator_t *bctbx_iterator_ullong_get_next_and_delete(bctbx_iterator_t *it) {
+-	bctbx_iterator_t * next = bctbx_iterator_ullong_get_next(it);
+-	bctbx_iterator_ullong_delete(it);
+-	return next;
+-}
+-extern "C" bctbx_iterator_t *bctbx_iterator_cchar_get_next_and_delete(bctbx_iterator_t *it) {
+-	bctbx_iterator_t * next = bctbx_iterator_cchar_get_next(it);
+-	bctbx_iterator_cchar_delete(it);
+-	return next;
+-}
+ 
+ template<typename T> bool_t bctbx_iterator_equals_type(const bctbx_iterator_t *a,const bctbx_iterator_t *b) {
+ 	return *(typename T::iterator*)a == *(typename T::iterator*)b;
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/bctoolbox.git/commitdiff/0535db47ec0bc332d4ba17b2f2e8c4a1bddbc79c



More information about the pld-cvs-commit mailing list