From a38722be2ba63466431616a0756981697d29fa23 Mon Sep 17 00:00:00 2001 From: Miklos Szeredi Date: Mon, 18 Feb 2013 16:24:11 +0100 Subject: fuse_opt_parse(): fix memory leak when storing a newly allocated string for format "%s", free the previous value stored at that location. Reported by Marco Schuster --- lib/fuse_opt.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'lib/fuse_opt.c') diff --git a/lib/fuse_opt.c b/lib/fuse_opt.c index 93efd29..15f9e21 100644 --- a/lib/fuse_opt.c +++ b/lib/fuse_opt.c @@ -204,11 +204,13 @@ static int process_opt_param(void *var, const char *format, const char *param, { assert(format[0] == '%'); if (format[1] == 's') { + char **s = var; char *copy = strdup(param); if (!copy) return alloc_failed(); - *(char **) var = copy; + free(*s); + *s = copy; } else { if (sscanf(param, format, var) != 1) { fprintf(stderr, "fuse: invalid parameter in option `%s'\n", arg); -- cgit v1.2.3