forked from len0rd/rockbox
Dircache: Refine name allocation and error handling.
* 8 bits is enough to allow 260 character base names when five bytes is the minimum indirect storage size (0..255->5..260). * Don't truncate anything that's too long as that can lead to bad behavior, simply don't include the offending entry in the parent. * Set the .tinyname flag to 1 by default to indicate that the entry's name doesn't need freeing. Clear it only when allocating indirect storage. * Rename some things to help catch all instances Change-Id: Iff747b624acbb8e03ed26c24afdf0fc715fd9d99
This commit is contained in:
parent
e3081b35cd
commit
70c929179b
3 changed files with 49 additions and 35 deletions
|
@ -505,7 +505,7 @@ walk_path(struct pathwalk *walkp, struct pathwalk_component *compp,
|
|||
if (!(compp->attr & ATTR_DIRECTORY))
|
||||
return -ENOTDIR;
|
||||
|
||||
if (len >= MAX_NAME)
|
||||
if (len > MAX_COMPNAME)
|
||||
return -ENAMETOOLONG;
|
||||
|
||||
/* check for "." and ".." */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue