diff options
author | Guilherme de S. Pastore <gpastore@src.gnome.org> | 2006-01-30 12:23:49 +0000 |
---|---|---|
committer | Guilherme de S. Pastore <gpastore@src.gnome.org> | 2006-01-30 12:23:49 +0000 |
commit | 14310a352215434f45d24584bc34156ee922d639 (patch) | |
tree | e7f07855bb8a2ef768adab0e99a23950e78668ba /src/trie.c | |
parent | 154c33179ee3d9de0bdf3416dabea3cdead0ebdc (diff) |
applied patch from Tomas Mraz to fix a double free. Closes bug #161337.
* src/trie.c: applied patch from Tomas Mraz to fix a double
free. Closes bug #161337.
Diffstat (limited to 'src/trie.c')
-rw-r--r-- | src/trie.c | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -648,9 +648,12 @@ _vte_trie_matchx(struct _vte_trie *trie, const gunichar *pattern, size_t length, /* We're done searching. Copy out any parameters we picked up. */ if (bestarray != NULL) { for (i = 0; i < bestarray->n_values; i++) { - g_value_array_append(array, - g_value_array_get_nth(bestarray, - i)); + GValue *value = g_value_array_get_nth(bestarray, i); + g_value_array_append(array, value); + + if (G_VALUE_HOLDS_POINTER(value)) { + g_value_set_pointer(value, NULL); + } } _vte_matcher_free_params_array(bestarray); } @@ -704,6 +707,7 @@ _vte_trie_match(struct _vte_trie *trie, const gunichar *pattern, size_t length, if (ptr != NULL) { g_free(ptr); } + g_value_set_pointer(value, NULL); } } _vte_matcher_free_params_array(valuearray); |