Codebase list mmc-utils / b4fe0c8
fix ENH_START_ADDR overflow Fix enh_start_addr overflow when converting emmc enh_area which will cause do_enh_area_set failure. Signed-off-by: jason.zeng <jasonzvz@gmail.com> Signed-off-by: Chris Ball <chris@printf.net> jason.zeng authored 6 years ago Chris Ball committed 6 years ago
1 changed file(s) with 4 addition(s) and 4 deletion(s). Raw diff Collapse all Expand all
11511151
11521152 enh_size_mult = (length_kib + align/2l) / align;
11531153
1154 enh_start_addr = start_kib * 1024 / (is_blockaddresed(ext_csd) ? 512 : 1);
1154 enh_start_addr = start_kib * (1024 / (is_blockaddresed(ext_csd) ? 512 : 1));
11551155 enh_start_addr /= align;
11561156 enh_start_addr *= align;
11571157
16941694 (ext_csd[EXT_CSD_ENH_START_ADDR_1] << 8) |
16951695 ext_csd[EXT_CSD_ENH_START_ADDR_0];
16961696 printf("Enhanced User Data Start Address"
1697 " [ENH_START_ADDR]: 0x%06x\n", regl);
1698 printf(" i.e. %lu bytes offset\n", (is_blockaddresed(ext_csd) ?
1699 512l : 1l) * regl);
1697 " [ENH_START_ADDR]: 0x%08x\n", regl);
1698 printf(" i.e. %llu bytes offset\n", (is_blockaddresed(ext_csd) ?
1699 512ll : 1ll) * regl);
17001700
17011701 /* A441]: reserved [135] */
17021702 printf("Bad Block Management mode"