[geany/geany] de5754: Fix a few unlikely corner-case leaks

Colomban Wendling git-noreply at xxxxx
Mon May 5 14:03:25 UTC 2014


Branch:      refs/heads/master
Author:      Colomban Wendling <ban at herbesfolles.org>
Committer:   Colomban Wendling <ban at herbesfolles.org>
Date:        Mon, 05 May 2014 14:03:25 UTC
Commit:      de57548a716045a1bbadac290758759dd1d050ce
             https://github.com/geany/geany/commit/de57548a716045a1bbadac290758759dd1d050ce

Log Message:
-----------
Fix a few unlikely corner-case leaks

Fix a few leaks that can only happen in case of programming error.

Thanks to Pavel Roschin and his cppcheck for spotting them!


Modified Paths:
--------------
    src/symbols.c
    src/templates.c
    src/utils.c

Modified: src/symbols.c
3 lines changed, 2 insertions(+), 1 deletions(-)
===================================================================
@@ -2396,10 +2396,11 @@ static void create_taglist_popup_menu(void)
 
 static void on_document_save(G_GNUC_UNUSED GObject *object, GeanyDocument *doc)
 {
-	gchar *f = g_build_filename(app->configdir, "ignore.tags", NULL);
+	gchar *f;
 
 	g_return_if_fail(!EMPTY(doc->real_path));
 
+	f = g_build_filename(app->configdir, "ignore.tags", NULL);
 	if (utils_str_equal(doc->real_path, f))
 		load_c_ignore_tags();
 


Modified: src/templates.c
3 lines changed, 2 insertions(+), 1 deletions(-)
===================================================================
@@ -300,10 +300,11 @@ static void on_file_menu_hide(GtkWidget *item)
 /* reload templates if any file in the templates path is saved */
 static void on_document_save(G_GNUC_UNUSED GObject *object, GeanyDocument *doc)
 {
-	gchar *path = g_build_filename(app->configdir, GEANY_TEMPLATES_SUBDIR, NULL);
+	gchar *path;
 
 	g_return_if_fail(!EMPTY(doc->real_path));
 
+	path = g_build_filename(app->configdir, GEANY_TEMPLATES_SUBDIR, NULL);
 	if (strncmp(doc->real_path, path, strlen(path)) == 0)
 	{
 		/* reload templates */


Modified: src/utils.c
6 lines changed, 3 insertions(+), 3 deletions(-)
===================================================================
@@ -1966,9 +1966,6 @@ gchar **utils_copy_environment(const gchar **exclude_vars, const gchar *first_va
 	const gchar *key, *value;
 	guint n, o;
 
-	/* get all the environ variables */
-	env = g_listenv();
-
 	/* count the additional variables */
 	va_start(args, first_varname);
 	for (o = 1; va_arg(args, gchar*) != NULL; o++);
@@ -1978,6 +1975,9 @@ gchar **utils_copy_environment(const gchar **exclude_vars, const gchar *first_va
 
 	o /= 2;
 
+	/* get all the environ variables */
+	env = g_listenv();
+
 	/* create an array large enough to hold the new environment */
 	n = g_strv_length(env);
 	/* 'n + o + 1' could leak a little bit when exclude_vars is set */



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Commits mailing list