From 63edd9afd1271abb8c3bb91869ab5fb0f67683e8 Mon Sep 17 00:00:00 2001 From: YOUR_NAME Date: Tue, 23 Mar 2021 15:20:27 +0800 Subject: [PATCH] Description: code defect fix Change-Id: I9c49073ad2bbd668102d20da8ff7a8d680890deb --- fs/fat/os_adapt/fatfs.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/fs/fat/os_adapt/fatfs.c b/fs/fat/os_adapt/fatfs.c index 6a173100..d62a15c6 100755 --- a/fs/fat/os_adapt/fatfs.c +++ b/fs/fat/os_adapt/fatfs.c @@ -378,7 +378,7 @@ int fatfs_create(struct Vnode *parent, const char *name, int mode, struct Vnode st_dword(dp->dir + DIR_ModTime, time); st_word(dp->dir + DIR_LstAccDate, time >> FTIME_DATE_OFFSET); dp->dir[DIR_Attr] = AM_ARC; - if ((mode & S_IWUSR) == 0) { + if (((DWORD)mode & S_IWUSR) == 0) { dp->dir[DIR_Attr] |= AM_RDO; } st_clust(fs, dp->dir, 0); @@ -894,6 +894,9 @@ static int fat_bind_check(struct Vnode *blk_driver, los_part **partition) } part = los_part_find(blk_driver); + if (part == NULL) { + return ENODEV; + } if (part->part_name != NULL) { bops->close(blk_driver); return EBUSY; @@ -1180,7 +1183,7 @@ static inline int GET_YEAR(WORD fdate) static time_t fattime_transfer(WORD fdate, WORD ftime) { - struct tm time; + struct tm time = { 0 }; time.tm_sec = GET_SECONDS(ftime); time.tm_min = GET_MINUTES(ftime); time.tm_hour = GET_HOURS(ftime); @@ -1620,7 +1623,7 @@ int fatfs_mkfs (struct Vnode *device, int sectors, int option) return -ENODEV; } - if (sectors < 0 || sectors > FAT32_MAX_CLUSTER_SIZE || (sectors & (sectors - 1))) { + if (sectors < 0 || sectors > FAT32_MAX_CLUSTER_SIZE || ((DWORD)sectors & ((DWORD)sectors - 1))) { return -EINVAL; }