[devhelp] parser: add missing dh_link_ref() when storing link in the GNode
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [devhelp] parser: add missing dh_link_ref() when storing link in the GNode
- Date: Fri, 12 May 2017 06:07:22 +0000 (UTC)
commit 0bba90813b4ede88698979b75ada84fed0ea629a
Author: Sébastien Wilmet <swilmet gnome org>
Date: Fri May 12 07:50:12 2017 +0200
parser: add missing dh_link_ref() when storing link in the GNode
I've checked with valgrind, and indeed there was this:
Invalid read of size 4
at 0x4E4A288: dh_link_unref (in /home/seb/jhbuild/lib/libdevhelp-3.so.3.0.0)
by 0xB989291: g_list_foreach (glist.c:1005)
by 0xB98883B: g_list_free_full (glist.c:220)
by 0x4E43F15: dh_book_finalize (in /home/seb/jhbuild/lib/libdevhelp-3.so.3.0.0)
(in dh_book_finalize() the GNode tree is freed first, and then the GList
of keywords).
This is now fixed.
This commit also makes the code in parser_start_node_book() consistent
with the other functions.
src/dh-parser.c | 6 ++----
1 files changed, 2 insertions(+), 4 deletions(-)
---
diff --git a/src/dh-parser.c b/src/dh-parser.c
index 0c158f3..47da5ed 100644
--- a/src/dh-parser.c
+++ b/src/dh-parser.c
@@ -172,13 +172,12 @@ parser_start_node_book (DhParser *parser,
NULL,
uri);
g_free (base);
- *parser->keywords = g_list_prepend (*parser->keywords, dh_link_ref (link));
+ *parser->keywords = g_list_prepend (*parser->keywords, link);
g_assert (parser->book_node == NULL);
parser->book_node = g_node_new (dh_link_ref (link));
*parser->book_tree = parser->book_node;
parser->parent = parser->book_node;
- dh_link_unref (link);
}
static void
@@ -237,8 +236,7 @@ parser_start_node_chapter (DhParser *parser,
*parser->keywords = g_list_prepend (*parser->keywords, link);
- /* FIXME probably need to ref the link here */
- node = g_node_new (link);
+ node = g_node_new (dh_link_ref (link));
g_node_prepend (parser->parent, node);
parser->parent = node;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]