diff options
author | Vincent Sanders <vince@kyllikki.org> | 2014-08-18 14:55:11 +0100 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2014-08-18 14:55:11 +0100 |
commit | 035d14df0e854b0f055fb4922d6fa533dc0ea71d (patch) | |
tree | ee18c1d713ae791f31dbf571839dbf4329f90398 | |
parent | 98a4985b30df2fb8195b0ff29eb69dd5f49557a8 (diff) | |
download | netsurf-035d14df0e854b0f055fb4922d6fa533dc0ea71d.tar.gz netsurf-035d14df0e854b0f055fb4922d6fa533dc0ea71d.tar.bz2 |
fix resource leak of default application desktop file name. (coverity 1231844)
-rw-r--r-- | gtk/viewdata.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/gtk/viewdata.c b/gtk/viewdata.c index fd6a6b5bf..aceb9e0d5 100644 --- a/gtk/viewdata.c +++ b/gtk/viewdata.c @@ -811,7 +811,7 @@ editor_init_fname(const char *title, { char **xdg_data_vec; int veci; - char *default_app; /* desktop file of default app for mimetype */ + char *def_app_desktop; /* desktop file of default app for mimetype */ char *exec_cmd; char **argv; @@ -821,15 +821,15 @@ editor_init_fname(const char *title, /* find user configured app for opening text/plain */ veci = 0; while (xdg_data_vec[veci] != NULL) { - default_app = xdg_get_default_app(xdg_data_vec[veci], + def_app_desktop = xdg_get_default_app(xdg_data_vec[veci], "text/plain"); - if (default_app != NULL) { + if (def_app_desktop != NULL) { break; } veci++; } - if (default_app == NULL) { + if (def_app_desktop == NULL) { /* no default app */ filepath_free_strvec(xdg_data_vec); return NSERROR_NOT_FOUND; @@ -838,12 +838,13 @@ editor_init_fname(const char *title, /* find app to execute */ veci = 0; while (xdg_data_vec[veci] != NULL) { - exec_cmd = xdg_get_exec_cmd(xdg_data_vec[veci], default_app); + exec_cmd = xdg_get_exec_cmd(xdg_data_vec[veci], def_app_desktop); if (exec_cmd != NULL) { break; } veci++; } + free(def_app_desktop); filepath_free_strvec(xdg_data_vec); if (exec_cmd == NULL) { |