From 802e0110db79473861b2859a5c1c7cc3764d9e5f Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Mon, 1 Sep 2014 00:00:19 -0400 Subject: Fix a small late creep-in goof in path parsing on native targets Anything of one dot and one character (e.g. ".a") would get treated as "." because I left out a condition when converting to recursionless parsing of relative components. Git 'er fixed up. Change-Id: Id5603ce0858b419dc08b1d496b4b187a573595f9 --- firmware/common/file_internal.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'firmware') diff --git a/firmware/common/file_internal.c b/firmware/common/file_internal.c index e5b43cd19d..b66aafd61e 100644 --- a/firmware/common/file_internal.c +++ b/firmware/common/file_internal.c @@ -505,8 +505,12 @@ walk_path(struct pathwalk *walkp, struct pathwalk_component *compp, /* check for "." and ".." */ if (name[0] == '.') { - if (len == 2 && name[1] == '.') + if (len == 1) + break; /* is "." */ + + if (name[1] == '.') { + /* is ".." */ struct pathwalk_component *parentp = compp->nextp; if (!parentp) return WALK_RC_CONT_AT_ROOT; @@ -514,9 +518,8 @@ walk_path(struct pathwalk *walkp, struct pathwalk_component *compp, compp->nextp = freep; freep = compp; compp = parentp; + break; } - - break; } /* fallthrough */ -- cgit v1.2.3