X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=fs%2Fcramfs%2Fcramfs.c;h=fd8e4ef31e6b7c42d589b3a62726ebbc025ceccc;hb=dede284d1ce9f9d9e79a5114fe7eb814fec07679;hp=48e7f63aa4d720a272614d0aa29b537bb8ba460d;hpb=ea1fba136a4778b8f55e6b94a76a548cfad9f522;p=u-boot diff --git a/fs/cramfs/cramfs.c b/fs/cramfs/cramfs.c index 48e7f63aa4..fd8e4ef31e 100644 --- a/fs/cramfs/cramfs.c +++ b/fs/cramfs/cramfs.c @@ -26,9 +26,6 @@ #include #include - -#if (CONFIG_COMMANDS & CFG_CMD_JFFS2) - #include #include #include @@ -44,8 +41,13 @@ struct cramfs_super super; /* CPU address space offset calculation macro, struct part_info offset is * device address space offset, so we need to shift it by a device start address. */ +#if !defined(CONFIG_SYS_NO_FLASH) extern flash_info_t flash_info[]; -#define PART_OFFSET(x) (x->offset + flash_info[x->dev->id->num].start[0]) +#define PART_OFFSET(x) ((ulong)x->offset + \ + flash_info[x->dev->id->num].start[0]) +#else +#define PART_OFFSET(x) ((ulong)x->offset) +#endif static int cramfs_read_super (struct part_info *info) { @@ -125,7 +127,8 @@ static unsigned long cramfs_resolve (unsigned long begin, unsigned long offset, namelen--; } - if (!strncmp (filename, name, namelen)) { + if (!strncmp(filename, name, namelen) && + (namelen == strlen(filename))) { char *p = strtok (NULL, "/"); if (raw && (p == NULL || *p == '\0')) @@ -343,5 +346,3 @@ int cramfs_check (struct part_info *info) } return 1; } - -#endif /* CFG_FS_CRAMFS */