[gimp] libgimpbase: fix memory leak in gimp_installation_directory().
- From: Jehan <jehanp src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] libgimpbase: fix memory leak in gimp_installation_directory().
- Date: Tue, 19 Jan 2021 11:08:59 +0000 (UTC)
commit 1873f0d65cccb6b639f1038f2981ff8667c44464
Author: Jehan <jehan girinstud io>
Date: Tue Jan 19 12:04:53 2021 +0100
libgimpbase: fix memory leak in gimp_installation_directory().
Argh I should have properly reviewed !392 (commit c264f0b705).
It was leaking the return value of a g_path_get_basename().
libgimpbase/gimpenv.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
---
diff --git a/libgimpbase/gimpenv.c b/libgimpbase/gimpenv.c
index 5a12462d94..b4b8781788 100644
--- a/libgimpbase/gimpenv.c
+++ b/libgimpbase/gimpenv.c
@@ -399,6 +399,7 @@ gimp_installation_directory (void)
NSAutoreleasePool *pool;
NSString *resource_path;
gchar *basename;
+ gchar *basepath;
gchar *dirname;
pool = [[NSAutoreleasePool alloc] init];
@@ -406,7 +407,8 @@ gimp_installation_directory (void)
resource_path = [[NSBundle mainBundle] resourcePath];
basename = g_path_get_basename ([resource_path UTF8String]);
- dirname = g_path_get_dirname ([resource_path UTF8String]);
+ basepath = g_path_get_dirname ([resource_path UTF8String]);
+ dirname = g_path_get_basename (basepath);
if (! strcmp (basename, ".libs"))
{
@@ -420,13 +422,13 @@ gimp_installation_directory (void)
* path is the directory which contains the executable
*/
- toplevel = g_strdup (dirname);
+ toplevel = g_strdup (basepath);
}
- else if (! strcmp (g_path_get_basename (dirname), "plug-ins"))
+ else if (! strcmp (dirname, "plug-ins"))
{
/* same for plug-ins in subdirectory, go three levels up from prefix/lib/gimp/x.y */
- gchar *tmp = g_path_get_dirname (dirname);
+ gchar *tmp = g_path_get_dirname (basepath);
gchar *tmp2 = g_path_get_dirname (tmp);
gchar *tmp3 = g_path_get_dirname (tmp2);
@@ -444,6 +446,7 @@ gimp_installation_directory (void)
}
g_free (basename);
+ g_free (basepath);
g_free (dirname);
[pool drain];
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]