From 30c305288f19ec3ceb71bce6e77c9af6a4f3f81e Mon Sep 17 00:00:00 2001 From: Sebastian Dransfeld Date: Thu, 4 Mar 2010 21:54:33 +0000 Subject: [PATCH] Fix problem with orig_path and rp We have orig_path, it is set by rp. Only problem is that it was set after efreet_desktop_read so the error handler would work as it should. Wrong solution. So now we set orig_path to NULL, so we always can free rp. SVN revision: 46880 --- legacy/efreet/src/lib/efreet_desktop.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/legacy/efreet/src/lib/efreet_desktop.c b/legacy/efreet/src/lib/efreet_desktop.c index 9c6a452a64..e53ec23e1a 100644 --- a/legacy/efreet/src/lib/efreet_desktop.c +++ b/legacy/efreet/src/lib/efreet_desktop.c @@ -449,15 +449,18 @@ efreet_desktop_new(const char *file) desktop = NEW(Efreet_Desktop, 1); if (!desktop) goto error; - desktop->orig_path = strdup(file); + desktop->orig_path = rp; if (!efreet_desktop_read(desktop)) goto error; - desktop->orig_path = rp; desktop->ref = 1; return desktop; error: - if (desktop) efreet_desktop_free(desktop); + if (desktop) + { + desktop->orig_path = NULL; + efreet_desktop_free(desktop); + } if (rp) free(rp); return NULL; }