From 70c929179b80e0657e31558e34d2bc62e1176564 Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Sun, 12 Mar 2017 20:59:44 -0400 Subject: 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 --- firmware/common/file_internal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'firmware/common/file_internal.c') diff --git a/firmware/common/file_internal.c b/firmware/common/file_internal.c index 8fee802f6f..a109563092 100644 --- a/firmware/common/file_internal.c +++ b/firmware/common/file_internal.c @@ -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 ".." */ -- cgit v1.2.3