File: 0006-user-sentence-dictionary-Fix-memleak.patch

package info (click to toggle)
libkkc 0.3.5-13
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,904 kB
  • sloc: ansic: 7,099; makefile: 917; cpp: 435; python: 231; sh: 124
file content (29 lines) | stat: -rw-r--r-- 1,179 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
From: Daiki Ueno <ueno@gnu.org>
Date: Tue, 19 Jun 2018 14:16:21 +0200
Subject: user-sentence-dictionary: Fix memleak

Applied-Upstream: https://github.com/ueno/libkkc/commit/1a3e0298460b3a85fa504375c3e48369ece3b760

Similar to commit 7d365e11.
---
 libkkc/user-sentence-dictionary.vala | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/libkkc/user-sentence-dictionary.vala b/libkkc/user-sentence-dictionary.vala
index 5ff9883..abfe3a9 100644
--- a/libkkc/user-sentence-dictionary.vala
+++ b/libkkc/user-sentence-dictionary.vala
@@ -258,9 +258,13 @@ namespace Kkc {
             // Newer valac thinks null in a fixed length array as an
             // empty string.
             var array = input.to_array ();
+            // Change length of strv may make vala no able to free it
+            // correctly. Save the length and restore it later.
+            var old_length = array.length;
             array.length = -1;
             constraint_entries.set (string.joinv ("", array), constraint);
             phrase_entries.set (string.joinv (" ", array), phrase);
+            array.length = old_length;
             is_dirty = true;
             return true;
         }