[PATCH 2/2] util: unreference objects referenced by the returned stream obj

David Bremner david at tethera.net
Sun Sep 22 15:44:01 PDT 2019


We want freeing the returned stream to also free these underlying
objects. Compare tests/test-filters.c in the gmime 3.2.x source, which
uses this same idiom.

Thanks to James Troup for the report and the fix.
---
 test/T750-gzip.sh  | 1 -
 util/gmime-extra.c | 2 ++
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/test/T750-gzip.sh b/test/T750-gzip.sh
index f4e0c42a..fac41d39 100755
--- a/test/T750-gzip.sh
+++ b/test/T750-gzip.sh
@@ -170,7 +170,6 @@ test_expect_equal_file EXPECTED OUTPUT
 # there are more than 200 messages in this corpus
 add_email_corpus lkml
 test_begin_subtest "new doesn't run out of file descriptors with many gzipped files"
-test_subtest_known_broken
 ulimit -n 200
 gzip --recursive ${MAIL_DIR}
 test_expect_success "notmuch new"
diff --git a/util/gmime-extra.c b/util/gmime-extra.c
index 7562d906..4a591cae 100644
--- a/util/gmime-extra.c
+++ b/util/gmime-extra.c
@@ -28,6 +28,8 @@ _gzfile_maybe_filter (GMimeStream *file_stream) {
 
 	/* ignore filter id */
 	(void)g_mime_stream_filter_add ((GMimeStreamFilter *)gzstream, gzfilter);
+	g_object_unref(gzfilter);
+	g_object_unref(file_stream);
 	return gzstream;
     } else {
 	return file_stream;
-- 
2.23.0



More information about the notmuch mailing list