From 3d9bade32227b9e6daaa07a3608924c13f57eb2b Mon Sep 17 00:00:00 2001 From: alvarofe Date: Wed, 30 Aug 2017 23:53:46 +0200 Subject: [PATCH] Fix io_zip plugin after crashes and regression due to leaks --- libr/io/p/io_zip.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libr/io/p/io_zip.c b/libr/io/p/io_zip.c index 34f1e82ff3..ffc97e2315 100644 --- a/libr/io/p/io_zip.c +++ b/libr/io/p/io_zip.c @@ -365,7 +365,9 @@ static RIODesc *r_io_zip_open(RIO *io, const char *file, int rw, int mode) { return NULL; } zip_uri = strdup (file); - if (!zip_uri) return NULL; + if (!zip_uri) { + return NULL; + } pikaboo = strstr (zip_uri, "://"); if (pikaboo) { tmp = strstr (pikaboo + 3, "//"); @@ -406,6 +408,8 @@ static RIODesc *r_io_zip_open(RIO *io, const char *file, int rw, int mode) { } else { zip_filename = strdup (pikaboo + 1); } + } else { + zip_filename = strdup (pikaboo + 1); } } tmp = zip_filename; @@ -433,7 +437,7 @@ static RIODesc *r_io_zip_open(RIO *io, const char *file, int rw, int mode) { ZIP_CREATE, mode, rw); } else { filename_in_zipfile = r_str_newf ("%s", zip_filename); - free (zip_filename); + R_FREE (tmp); zip_filename = strdup (pikaboo + 3); if (!strcmp (zip_filename, filename_in_zipfile)) { //R_FREE (zip_filename);