From 9aa23128b6ca6b2603904cff72aefe984f7369b4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=A9my=20Zurcher?= Date: Mon, 19 Nov 2012 13:13:31 +0000 Subject: [PATCH] [eina] path sanitizing now takes care of '/./' and breaks loop on '/..$' MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Patch by: Jérémy Zurcher SVN revision: 79449 --- src/lib/eina/eina_file.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/lib/eina/eina_file.c b/src/lib/eina/eina_file.c index 1c0253b..663a474 100644 --- a/src/lib/eina/eina_file.c +++ b/src/lib/eina/eina_file.c @@ -551,8 +551,7 @@ _eina_file_escape(const char *path, int *length) { len -= p + 2 - q; result[len] = '\0'; - q = p; - ++p; + break; } else { @@ -560,6 +559,17 @@ _eina_file_escape(const char *path, int *length) ++p; } } + else + if (p[1] == '.' + && p[2] == '/') + { + // remove '/./' + len -= 2; + memmove(p, p + 2, len - (p - result)); + result[len] = '\0'; + q = p; + ++p; + } else { q = p; -- 2.7.4