application: Remove trailing slashes from the input in opendir().

This is needed for readdir() and dir_get_info() to work properly because
they depend on hash/path matching.

Change-Id: Ibd23def10eebabd76cdddac2739a5274159e88a9
This commit is contained in:
Thomas Martitz 2014-02-25 09:52:07 +01:00
parent 5fd8dd1321
commit 731072de7a

View file

@ -341,10 +341,14 @@ DIR* app_opendir(const char *_name)
return NULL;
struct __dir *this = (struct __dir*)buf;
/* definitely fits due to strlen() */
strcpy(this->path, name);
this->dir = opendir(name);
/* carefully remove any trailing slash from the input, so that
* hash/path matching in readdir() works properly */
while (name[name_len-1] == '/')
name_len -= 1;
/* strcpy cannot be used because of trailing slashes */
memcpy(this->path, name, name_len);
this->path[name_len] = 0;
this->dir = opendir(this->path);
if (!this->dir)
{