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; }