projects
/
xscreensaver
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
http://packetstormsecurity.org/UNIX/admin/xscreensaver-4.02.tar.gz
[xscreensaver]
/
driver
/
demo-Gtk-conf.c
diff --git
a/driver/demo-Gtk-conf.c
b/driver/demo-Gtk-conf.c
index d51d1df7b3fe2e3282b8e2fbc51c32f274829130..02dad2ba03282455e4073837118c0b6b17cefb5f 100644
(file)
--- a/
driver/demo-Gtk-conf.c
+++ b/
driver/demo-Gtk-conf.c
@@
-1671,10
+1671,15
@@
load_configurator_1 (const char *program, const char *arguments,
{
const char *dir = HACK_CONFIGURATION_PATH;
int L = strlen (dir);
{
const char *dir = HACK_CONFIGURATION_PATH;
int L = strlen (dir);
- char *file
= (char *) malloc (L + strlen (program) + 10)
;
+ char *file;
char *s;
FILE *f;
char *s;
FILE *f;
- conf_data *data = (conf_data *) calloc (1, sizeof(*data));
+ conf_data *data;
+
+ if (L == 0) return 0;
+
+ file = (char *) malloc (L + strlen (program) + 10);
+ data = (conf_data *) calloc (1, sizeof(*data));
strcpy (file, dir);
if (file[L-1] != '/')
strcpy (file, dir);
if (file[L-1] != '/')
@@
-1703,7
+1708,12
@@
load_configurator_1 (const char *program, const char *arguments,
fprintf (stderr, "%s: reading %s...\n", blurb(), file);
res = fread (chars, 1, 4, f);
fprintf (stderr, "%s: reading %s...\n", blurb(), file);
res = fread (chars, 1, 4, f);
- if (res <= 0) return 0;
+ if (res <= 0)
+ {
+ free (data);
+ data = 0;
+ goto DONE;
+ }
ctxt = xmlCreatePushParserCtxt(NULL, NULL, chars, res, file);
while ((res = fread(chars, 1, size, f)) > 0)
ctxt = xmlCreatePushParserCtxt(NULL, NULL, chars, res, file);
while ((res = fread(chars, 1, size, f)) > 0)
@@
-1748,6
+1758,9
@@
load_configurator_1 (const char *program, const char *arguments,
}
data->progname = strdup (program);
}
data->progname = strdup (program);
+
+ DONE:
+ free (file);
return data;
}
return data;
}
@@
-1848,7
+1861,9
@@
free_conf_data (conf_data *data)
gtk_widget_destroy (data->widget);
if (data->progname)
gtk_widget_destroy (data->widget);
if (data->progname)
- free (data->progname);;
+ free (data->progname);
+ if (data->description)
+ free (data->description);
memset (data, ~0, sizeof(*data));
free (data);
memset (data, ~0, sizeof(*data));
free (data);