dev-libs/librdkafka: Rev bump to address memory leak
authorThomas Deutschmann <whissi@gentoo.org>
Tue, 20 Feb 2018 18:40:49 +0000 (19:40 +0100)
committerThomas Deutschmann <whissi@gentoo.org>
Tue, 20 Feb 2018 20:38:55 +0000 (21:38 +0100)
Package-Manager: Portage-2.3.24, Repoman-2.3.6
RepoMan-Options: --force

dev-libs/librdkafka/files/librdkafka-0.11.3-fix-memory-leak-issue1534.patch [new file with mode: 0644]
dev-libs/librdkafka/librdkafka-0.11.3-r1.ebuild [moved from dev-libs/librdkafka/librdkafka-0.11.3.ebuild with 95% similarity]

diff --git a/dev-libs/librdkafka/files/librdkafka-0.11.3-fix-memory-leak-issue1534.patch b/dev-libs/librdkafka/files/librdkafka-0.11.3-fix-memory-leak-issue1534.patch
new file mode 100644 (file)
index 0000000..ae4c3e5
--- /dev/null
@@ -0,0 +1,19 @@
+https://github.com/edenhill/librdkafka/commit/8fed971043e642c195860cd77006622d23616c22
+
+--- a/src/rdkafka_msgset_writer.c
++++ b/src/rdkafka_msgset_writer.c
+@@ -436,10 +436,12 @@ rd_kafka_msgset_writer_write_msg_payload (rd_kafka_msgset_writer_t *msetw,
+          * room in the buffer we'll copy the payload to the buffer,
+          * otherwise we push a reference to the memory. */
+         if (rkm->rkm_len <= (size_t)rk->rk_conf.msg_copy_max_size &&
+-            rd_buf_write_remains(&rkbuf->rkbuf_buf) > rkm->rkm_len)
++            rd_buf_write_remains(&rkbuf->rkbuf_buf) > rkm->rkm_len) {
+                 rd_kafka_buf_write(rkbuf,
+                                    rkm->rkm_payload, rkm->rkm_len);
+-        else
++                if (free_cb)
++                        free_cb(rkm->rkm_payload);
++        } else
+                 rd_kafka_buf_push(rkbuf, rkm->rkm_payload, rkm->rkm_len,
+                                   free_cb);
+ }
similarity index 95%
rename from dev-libs/librdkafka/librdkafka-0.11.3.ebuild
rename to dev-libs/librdkafka/librdkafka-0.11.3-r1.ebuild
index 00872b0eadc78440a56f14f15e2d16eeafb138d8..f7ec851be536307bfc71b83aed1595fc152bab02 100644 (file)
@@ -15,6 +15,8 @@ if [[ ${PV} == "9999" ]]; then
 else
        SRC_URI="https://github.com/edenhill/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
        KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ppc x86"
+
+       PATCHES=( "${FILESDIR}"/${P}-fix-memory-leak-issue1534.patch )
 fi
 
 LICENSE="BSD-2"