From: J. Vijayanand Date: Wed, 19 Oct 2011 07:43:08 +0000 (+0000) Subject: fat: correct ATTR_VFAT check X-Git-Tag: v2011.12-rc1~407 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=206d68fdd41e4942825cfc4a91a096297b654a24;p=u-boot fat: correct ATTR_VFAT check ATTR_VFAT condition requires multiple bits to be set but the present condition checking in do_fat_read() & get_dentfromdir() ends up passing on even a single bit being set. Signed-off-by: J. Vijayanand Signed-off-by: Sergei Shtylyov --- diff --git a/fs/fat/fat.c b/fs/fat/fat.c index 756ac64a8b..28baa546ab 100644 --- a/fs/fat/fat.c +++ b/fs/fat/fat.c @@ -572,8 +572,8 @@ static dir_entry *get_dentfromdir (fsdata *mydata, int startsect, } if ((dentptr->attr & ATTR_VOLUME)) { #ifdef CONFIG_SUPPORT_VFAT - if ((dentptr->attr & ATTR_VFAT) && - (dentptr-> name[0] & LAST_LONG_ENTRY_MASK)) { + if ((dentptr->attr & ATTR_VFAT) == ATTR_VFAT && + (dentptr->name[0] & LAST_LONG_ENTRY_MASK)) { prevcksum = ((dir_slot *)dentptr)->alias_checksum; get_vfatname(mydata, curclust, get_dentfromdir_block, @@ -897,7 +897,7 @@ do_fat_read (const char *filename, void *buffer, unsigned long maxsize, } if ((dentptr->attr & ATTR_VOLUME)) { #ifdef CONFIG_SUPPORT_VFAT - if ((dentptr->attr & ATTR_VFAT) && + if ((dentptr->attr & ATTR_VFAT) == ATTR_VFAT && (dentptr->name[0] & LAST_LONG_ENTRY_MASK)) { prevcksum = ((dir_slot *)dentptr)->alias_checksum;