
Hi,
when having two (or more) files in cramfs which start with same name, cramfs_resolve didn't check the filename length and thus returned potentially the wrong file.
kind regards, --peter;
Signed-off-by: Peter Feuerer pfe@sysgo.com
--- diff -ur u-boot-2011.06_original/fs/cramfs/cramfs.c u-boot-2011.06/fs/cramfs/cramfs.c --- u-boot-2011.06_original/fs/cramfs/cramfs.c 2011-07-28 09:48:10.000000000 +0200 +++ u-boot-2011.06/fs/cramfs/cramfs.c 2011-07-28 09:51:54.000000000 +0200 @@ -126,7 +126,8 @@ namelen--; }
- if (!strncmp (filename, name, namelen)) { + if (namelen == strlen (filename) && + !strncmp (filename, name, namelen)) { char *p = strtok (NULL, "/");
if (raw && (p == NULL || *p == '\0'))