diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2014-09-01 00:00:19 -0400 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2014-09-01 00:00:19 -0400 |
commit | 802e0110db79473861b2859a5c1c7cc3764d9e5f (patch) | |
tree | b1488100f2628f8d1a74d3bc83ea018b1071bae9 /firmware/common/file_internal.c | |
parent | 5b08f1a5b99136ef052b6f430b62bc618cd44946 (diff) | |
download | rockbox-802e0110db79473861b2859a5c1c7cc3764d9e5f.tar.gz rockbox-802e0110db79473861b2859a5c1c7cc3764d9e5f.zip |
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
Diffstat (limited to 'firmware/common/file_internal.c')
-rw-r--r-- | firmware/common/file_internal.c | 9 |
1 files changed, 6 insertions, 3 deletions
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, | |||
505 | /* check for "." and ".." */ | 505 | /* check for "." and ".." */ |
506 | if (name[0] == '.') | 506 | if (name[0] == '.') |
507 | { | 507 | { |
508 | if (len == 2 && name[1] == '.') | 508 | if (len == 1) |
509 | break; /* is "." */ | ||
510 | |||
511 | if (name[1] == '.') | ||
509 | { | 512 | { |
513 | /* is ".." */ | ||
510 | struct pathwalk_component *parentp = compp->nextp; | 514 | struct pathwalk_component *parentp = compp->nextp; |
511 | if (!parentp) | 515 | if (!parentp) |
512 | return WALK_RC_CONT_AT_ROOT; | 516 | return WALK_RC_CONT_AT_ROOT; |
@@ -514,9 +518,8 @@ walk_path(struct pathwalk *walkp, struct pathwalk_component *compp, | |||
514 | compp->nextp = freep; | 518 | compp->nextp = freep; |
515 | freep = compp; | 519 | freep = compp; |
516 | compp = parentp; | 520 | compp = parentp; |
521 | break; | ||
517 | } | 522 | } |
518 | |||
519 | break; | ||
520 | } | 523 | } |
521 | 524 | ||
522 | /* fallthrough */ | 525 | /* fallthrough */ |