summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2014-08-18 14:55:11 +0100
committerVincent Sanders <vince@kyllikki.org>2014-08-18 14:55:11 +0100
commit035d14df0e854b0f055fb4922d6fa533dc0ea71d (patch)
treeee18c1d713ae791f31dbf571839dbf4329f90398 /gtk
parent98a4985b30df2fb8195b0ff29eb69dd5f49557a8 (diff)
downloadnetsurf-035d14df0e854b0f055fb4922d6fa533dc0ea71d.tar.gz
netsurf-035d14df0e854b0f055fb4922d6fa533dc0ea71d.tar.bz2
fix resource leak of default application desktop file name. (coverity 1231844)
Diffstat (limited to 'gtk')
-rw-r--r--gtk/viewdata.c11
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) {