mirror of
https://git.codelinaro.org/clo/qsdk/oss/boot/u-boot-2016.git
synced 2025-12-10 07:44:53 +01:00
Revert "ipq807x: fat: Fix overflow issue"
This reverts commit 8791ff3dab.
Change-Id: I03af0ce35aa2df9e381b98c3842e4b88fbd35e1d
Signed-off-by: Sham Muthayyan <smuthayy@codeaurora.org>
This commit is contained in:
parent
8d977bd916
commit
107d511bdc
3 changed files with 13 additions and 20 deletions
|
|
@ -377,7 +377,7 @@ static int dump_wlan_segments(struct dumpinfo_t *dumpinfo, int indx)
|
||||||
|
|
||||||
if (cur_type == QCA_WDT_LOG_DUMP_TYPE_WLAN_MOD_INFO) {
|
if (cur_type == QCA_WDT_LOG_DUMP_TYPE_WLAN_MOD_INFO) {
|
||||||
snprintf(wlan_segment_name, sizeof(wlan_segment_name),
|
snprintf(wlan_segment_name, sizeof(wlan_segment_name),
|
||||||
"MOD_INFO.txt");
|
"MODULE_INFO.txt");
|
||||||
wlan_tlv_size = *(uint32_t *)(uintptr_t)tlv_info.size;
|
wlan_tlv_size = *(uint32_t *)(uintptr_t)tlv_info.size;
|
||||||
} else {
|
} else {
|
||||||
snprintf(wlan_segment_name,
|
snprintf(wlan_segment_name,
|
||||||
|
|
|
||||||
|
|
@ -806,25 +806,21 @@ static void fill_dentry(fsdata *mydata, dir_entry *dentptr,
|
||||||
static int check_overflow(fsdata *mydata, __u32 clustnum, loff_t size)
|
static int check_overflow(fsdata *mydata, __u32 clustnum, loff_t size)
|
||||||
{
|
{
|
||||||
__u32 startsect, sect_num, offset;
|
__u32 startsect, sect_num, offset;
|
||||||
__u32 total_clusters = 0;
|
|
||||||
|
|
||||||
total_clusters = ((total_sector - mydata->rootdir_sect -
|
if (clustnum > 0) {
|
||||||
mydata->rootdir_size) /
|
startsect = mydata->data_begin +
|
||||||
mydata->clust_size) - 3;
|
clustnum * mydata->clust_size;
|
||||||
|
} else {
|
||||||
/* the last sectors could be orphaned and not belong to any cluster */
|
|
||||||
if (clustnum >= total_clusters) {
|
|
||||||
return -1;
|
|
||||||
} else if (!clustnum) {
|
|
||||||
startsect = mydata->rootdir_sect;
|
startsect = mydata->rootdir_sect;
|
||||||
sect_num = div_u64_rem(size, mydata->sect_size, &offset);
|
|
||||||
|
|
||||||
if (offset != 0)
|
|
||||||
sect_num++;
|
|
||||||
if (startsect + sect_num > total_sector)
|
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sect_num = div_u64_rem(size, mydata->sect_size, &offset);
|
||||||
|
|
||||||
|
if (offset != 0)
|
||||||
|
sect_num++;
|
||||||
|
|
||||||
|
if (startsect + sect_num > total_sector)
|
||||||
|
return -1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1007,9 +1003,8 @@ static int do_fat_write(const char *filename, void *buffer, loff_t size,
|
||||||
if (mydata->fatsize == 32) {
|
if (mydata->fatsize == 32) {
|
||||||
mydata->data_begin = mydata->rootdir_sect -
|
mydata->data_begin = mydata->rootdir_sect -
|
||||||
(mydata->clust_size * 2);
|
(mydata->clust_size * 2);
|
||||||
mydata->rootdir_size = 0;
|
|
||||||
} else {
|
} else {
|
||||||
__u16 rootdir_size;
|
int rootdir_size;
|
||||||
|
|
||||||
rootdir_size = ((bs.dir_entries[1] * (int)256 +
|
rootdir_size = ((bs.dir_entries[1] * (int)256 +
|
||||||
bs.dir_entries[0]) *
|
bs.dir_entries[0]) *
|
||||||
|
|
@ -1018,7 +1013,6 @@ static int do_fat_write(const char *filename, void *buffer, loff_t size,
|
||||||
mydata->data_begin = mydata->rootdir_sect +
|
mydata->data_begin = mydata->rootdir_sect +
|
||||||
rootdir_size -
|
rootdir_size -
|
||||||
(mydata->clust_size * 2);
|
(mydata->clust_size * 2);
|
||||||
mydata->rootdir_size = rootdir_size;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mydata->fatbufnum = -1;
|
mydata->fatbufnum = -1;
|
||||||
|
|
|
||||||
|
|
@ -174,7 +174,6 @@ typedef struct {
|
||||||
__u16 clust_size; /* Size of clusters in sectors */
|
__u16 clust_size; /* Size of clusters in sectors */
|
||||||
int data_begin; /* The sector of the first cluster, can be negative */
|
int data_begin; /* The sector of the first cluster, can be negative */
|
||||||
int fatbufnum; /* Used by get_fatent, init to -1 */
|
int fatbufnum; /* Used by get_fatent, init to -1 */
|
||||||
__u16 rootdir_size; /* total sectors in rootdir */
|
|
||||||
} fsdata;
|
} fsdata;
|
||||||
|
|
||||||
typedef int (file_detectfs_func)(void);
|
typedef int (file_detectfs_func)(void);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue