* [f2fs-dev] [PATCH] Fix file too large causing overflow
@ 2022-06-16 3:58 Dylan Chang
2022-06-16 17:17 ` Jaegeuk Kim
0 siblings, 1 reply; 3+ messages in thread
From: Dylan Chang @ 2022-06-16 3:58 UTC (permalink / raw)
To: linux-f2fs-devel; +Cc: Dylan Chang
fibmap: Fix file too large causing file_pos overflow
fibmap show file_pos with incorrectly value when passing a large file.
Before:
----------------file info-------------------
/data/media/0/data1 :
--------------------------------------------
dev [254:18]
ino [0x 4db1 : 19889]
mode [0x 81b0 : 33200]
nlink [0x 1 : 1]
uid [0x 280e : 10254]
gid [0x 3ff : 1023]
size [0x1b3dca314 : 7312548628]
blksize [0x 1000 : 4096]
blocks [0x da2530 : 14296368]
--------------------------------------------
file_pos start_blk end_blk blks
0 3197602 3198463 862
3530752 3197509 3197509 1
3534848 3197557 3197578 22
3624960 3198464 3396701 198238
815607808 3396703 3632480 235778
1781354496 3632482 3652095 19614
1861693440 3396702 3396702 1
1861697536 3632481 3632481 1
1861701632 1514948 1514948 1
1861705728 1518774 1518774 1
1861709824 2543104 2543125 22
...
1862111232 2457813 2457813 1
1862115328 3652096 3878168 226073
-1506856960 3878170 4133725 255556
-460099584 1510048 1510052 5
Patched:
----------------file info-------------------
/data/media/0/data1 :
--------------------------------------------
dev [254:18]
ino [0x 4db1 : 19889]
mode [0x 81b0 : 33200]
nlink [0x 1 : 1]
uid [0x 280e : 10254]
gid [0x 3ff : 1023]
size [0x1b3dca314 : 7312548628]
blksize [0x 1000 : 4096]
blocks [0x da2530 : 14296368]
--------------------------------------------
file_pos start_blk end_blk blks
0 3197602 3198463 862
3530752 3197509 3197509 1
3534848 3197557 3197578 22
3624960 3198464 3396701 198238
815607808 3396703 3632480 235778
1781354496 3632482 3652095 19614
1861693440 3396702 3396702 1
1861697536 3632481 3632481 1
1861701632 1514948 1514948 1
1861705728 1518774 1518774 1
1861709824 2543104 2543125 22
...
1862111232 2457813 2457813 1
1862115328 3652096 3878168 226073
2788110336 3878170 4133725 255556
3834867712 1510048 1510052 5
Change-Id: Ic2486e25ea03114d4dbf3651650c6a2399db0714
Signed-off-by: Dylan Chang <dylan.chang@oneplus.com>
---
tools/fibmap.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tools/fibmap.c b/tools/fibmap.c
index 3238f29..3217600 100644
--- a/tools/fibmap.c
+++ b/tools/fibmap.c
@@ -47,7 +47,7 @@
#endif
struct file_ext {
- __u32 f_pos;
+ __u64 f_pos;
__u32 start_blk;
__u32 end_blk;
__u32 blk_count;
@@ -56,9 +56,9 @@ struct file_ext {
void print_ext(struct file_ext *ext)
{
if (ext->end_blk == 0)
- printf("%8d %8d %8d %8d\n", ext->f_pos, 0, 0, ext->blk_count);
+ printf("%8llu %8lu %8lu %8lu\n", ext->f_pos, 0, 0, ext->blk_count);
else
- printf("%8d %8d %8d %8d\n", ext->f_pos, ext->start_blk,
+ printf("%8llu %8lu %8lu %8lu\n", ext->f_pos, ext->start_blk,
ext->end_blk, ext->blk_count);
}
@@ -209,7 +209,7 @@ int main(int argc, char *argv[])
ext.blk_count++;
} else {
print_ext(&ext);
- ext.f_pos = i * st.st_blksize;
+ ext.f_pos = (__u64)i * st.st_blksize;
ext.start_blk = blknum;
ext.end_blk = blknum;
ext.blk_count = 1;
--
2.17.1
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [f2fs-dev] [PATCH] Fix file too large causing overflow
2022-06-16 3:58 [f2fs-dev] [PATCH] Fix file too large causing overflow Dylan Chang
@ 2022-06-16 17:17 ` Jaegeuk Kim
2022-06-17 2:10 ` Chao Yu
0 siblings, 1 reply; 3+ messages in thread
From: Jaegeuk Kim @ 2022-06-16 17:17 UTC (permalink / raw)
To: Dylan Chang; +Cc: Dylan Chang, linux-f2fs-devel
On 06/16, Dylan Chang wrote:
> fibmap: Fix file too large causing file_pos overflow
>
> fibmap show file_pos with incorrectly value when passing a large file.
>
> Before:
>
> ----------------file info-------------------
> /data/media/0/data1 :
> --------------------------------------------
> dev [254:18]
> ino [0x 4db1 : 19889]
> mode [0x 81b0 : 33200]
> nlink [0x 1 : 1]
> uid [0x 280e : 10254]
> gid [0x 3ff : 1023]
> size [0x1b3dca314 : 7312548628]
> blksize [0x 1000 : 4096]
> blocks [0x da2530 : 14296368]
> --------------------------------------------
>
> file_pos start_blk end_blk blks
> 0 3197602 3198463 862
> 3530752 3197509 3197509 1
> 3534848 3197557 3197578 22
> 3624960 3198464 3396701 198238
> 815607808 3396703 3632480 235778
> 1781354496 3632482 3652095 19614
> 1861693440 3396702 3396702 1
> 1861697536 3632481 3632481 1
> 1861701632 1514948 1514948 1
> 1861705728 1518774 1518774 1
> 1861709824 2543104 2543125 22
> ...
> 1862111232 2457813 2457813 1
> 1862115328 3652096 3878168 226073
> -1506856960 3878170 4133725 255556
> -460099584 1510048 1510052 5
>
> Patched:
> ----------------file info-------------------
> /data/media/0/data1 :
> --------------------------------------------
> dev [254:18]
> ino [0x 4db1 : 19889]
> mode [0x 81b0 : 33200]
> nlink [0x 1 : 1]
> uid [0x 280e : 10254]
> gid [0x 3ff : 1023]
> size [0x1b3dca314 : 7312548628]
> blksize [0x 1000 : 4096]
> blocks [0x da2530 : 14296368]
> --------------------------------------------
>
> file_pos start_blk end_blk blks
> 0 3197602 3198463 862
> 3530752 3197509 3197509 1
> 3534848 3197557 3197578 22
> 3624960 3198464 3396701 198238
> 815607808 3396703 3632480 235778
> 1781354496 3632482 3652095 19614
> 1861693440 3396702 3396702 1
> 1861697536 3632481 3632481 1
> 1861701632 1514948 1514948 1
> 1861705728 1518774 1518774 1
> 1861709824 2543104 2543125 22
> ...
> 1862111232 2457813 2457813 1
> 1862115328 3652096 3878168 226073
> 2788110336 3878170 4133725 255556
> 3834867712 1510048 1510052 5
>
> Change-Id: Ic2486e25ea03114d4dbf3651650c6a2399db0714
> Signed-off-by: Dylan Chang <dylan.chang@oneplus.com>
> ---
> tools/fibmap.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/tools/fibmap.c b/tools/fibmap.c
> index 3238f29..3217600 100644
> --- a/tools/fibmap.c
> +++ b/tools/fibmap.c
> @@ -47,7 +47,7 @@
> #endif
>
> struct file_ext {
> - __u32 f_pos;
> + __u64 f_pos;
> __u32 start_blk;
> __u32 end_blk;
> __u32 blk_count;
> @@ -56,9 +56,9 @@ struct file_ext {
> void print_ext(struct file_ext *ext)
> {
> if (ext->end_blk == 0)
> - printf("%8d %8d %8d %8d\n", ext->f_pos, 0, 0, ext->blk_count);
> + printf("%8llu %8lu %8lu %8lu\n", ext->f_pos, 0, 0, ext->blk_count);
I had to fix unrelated changes from %8d to %8lu. Please check it
https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git/commit/?h=dev-test&id=74f81f441ce24dd47cfe68e6fb336e0142bf4217
> else
> - printf("%8d %8d %8d %8d\n", ext->f_pos, ext->start_blk,
> + printf("%8llu %8lu %8lu %8lu\n", ext->f_pos, ext->start_blk,
> ext->end_blk, ext->blk_count);
> }
>
> @@ -209,7 +209,7 @@ int main(int argc, char *argv[])
> ext.blk_count++;
> } else {
> print_ext(&ext);
> - ext.f_pos = i * st.st_blksize;
> + ext.f_pos = (__u64)i * st.st_blksize;
> ext.start_blk = blknum;
> ext.end_blk = blknum;
> ext.blk_count = 1;
> --
> 2.17.1
>
>
>
> _______________________________________________
> Linux-f2fs-devel mailing list
> Linux-f2fs-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [f2fs-dev] [PATCH] Fix file too large causing overflow
2022-06-16 17:17 ` Jaegeuk Kim
@ 2022-06-17 2:10 ` Chao Yu
0 siblings, 0 replies; 3+ messages in thread
From: Chao Yu @ 2022-06-17 2:10 UTC (permalink / raw)
To: Jaegeuk Kim, Dylan Chang; +Cc: Dylan Chang, linux-f2fs-devel
On 2022/6/17 1:17, Jaegeuk Kim wrote:
> On 06/16, Dylan Chang wrote:
>> fibmap: Fix file too large causing file_pos overflow
>>
>> fibmap show file_pos with incorrectly value when passing a large file.
>>
>> Before:
>>
>> ----------------file info-------------------
>> /data/media/0/data1 :
>> --------------------------------------------
>> dev [254:18]
>> ino [0x 4db1 : 19889]
>> mode [0x 81b0 : 33200]
>> nlink [0x 1 : 1]
>> uid [0x 280e : 10254]
>> gid [0x 3ff : 1023]
>> size [0x1b3dca314 : 7312548628]
>> blksize [0x 1000 : 4096]
>> blocks [0x da2530 : 14296368]
>> --------------------------------------------
>>
>> file_pos start_blk end_blk blks
>> 0 3197602 3198463 862
>> 3530752 3197509 3197509 1
>> 3534848 3197557 3197578 22
>> 3624960 3198464 3396701 198238
>> 815607808 3396703 3632480 235778
>> 1781354496 3632482 3652095 19614
>> 1861693440 3396702 3396702 1
>> 1861697536 3632481 3632481 1
>> 1861701632 1514948 1514948 1
>> 1861705728 1518774 1518774 1
>> 1861709824 2543104 2543125 22
>> ...
>> 1862111232 2457813 2457813 1
>> 1862115328 3652096 3878168 226073
>> -1506856960 3878170 4133725 255556
>> -460099584 1510048 1510052 5
>>
>> Patched:
>> ----------------file info-------------------
>> /data/media/0/data1 :
>> --------------------------------------------
>> dev [254:18]
>> ino [0x 4db1 : 19889]
>> mode [0x 81b0 : 33200]
>> nlink [0x 1 : 1]
>> uid [0x 280e : 10254]
>> gid [0x 3ff : 1023]
>> size [0x1b3dca314 : 7312548628]
>> blksize [0x 1000 : 4096]
>> blocks [0x da2530 : 14296368]
>> --------------------------------------------
>>
>> file_pos start_blk end_blk blks
>> 0 3197602 3198463 862
>> 3530752 3197509 3197509 1
>> 3534848 3197557 3197578 22
>> 3624960 3198464 3396701 198238
>> 815607808 3396703 3632480 235778
>> 1781354496 3632482 3652095 19614
>> 1861693440 3396702 3396702 1
>> 1861697536 3632481 3632481 1
>> 1861701632 1514948 1514948 1
>> 1861705728 1518774 1518774 1
>> 1861709824 2543104 2543125 22
>> ...
>> 1862111232 2457813 2457813 1
>> 1862115328 3652096 3878168 226073
>> 2788110336 3878170 4133725 255556
>> 3834867712 1510048 1510052 5
>>
>> Change-Id: Ic2486e25ea03114d4dbf3651650c6a2399db0714
>> Signed-off-by: Dylan Chang <dylan.chang@oneplus.com>
>> ---
>> tools/fibmap.c | 8 ++++----
>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/tools/fibmap.c b/tools/fibmap.c
>> index 3238f29..3217600 100644
>> --- a/tools/fibmap.c
>> +++ b/tools/fibmap.c
>> @@ -47,7 +47,7 @@
>> #endif
>>
>> struct file_ext {
>> - __u32 f_pos;
>> + __u64 f_pos;
>> __u32 start_blk;
>> __u32 end_blk;
>> __u32 blk_count;
>> @@ -56,9 +56,9 @@ struct file_ext {
>> void print_ext(struct file_ext *ext)
>> {
>> if (ext->end_blk == 0)
>> - printf("%8d %8d %8d %8d\n", ext->f_pos, 0, 0, ext->blk_count);
>> + printf("%8llu %8lu %8lu %8lu\n", ext->f_pos, 0, 0, ext->blk_count);
>
> I had to fix unrelated changes from %8d to %8lu. Please check it
>
> https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git/commit/?h=dev-test&id=74f81f441ce24dd47cfe68e6fb336e0142bf4217
Reviewed-by: Chao Yu <chao@kernel.org>
Thanks,
>
>
>> else
>> - printf("%8d %8d %8d %8d\n", ext->f_pos, ext->start_blk,
>> + printf("%8llu %8lu %8lu %8lu\n", ext->f_pos, ext->start_blk,
>> ext->end_blk, ext->blk_count);
>> }
>>
>> @@ -209,7 +209,7 @@ int main(int argc, char *argv[])
>> ext.blk_count++;
>> } else {
>> print_ext(&ext);
>> - ext.f_pos = i * st.st_blksize;
>> + ext.f_pos = (__u64)i * st.st_blksize;
>> ext.start_blk = blknum;
>> ext.end_blk = blknum;
>> ext.blk_count = 1;
>> --
>> 2.17.1
>>
>>
>>
>> _______________________________________________
>> Linux-f2fs-devel mailing list
>> Linux-f2fs-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
>
>
> _______________________________________________
> Linux-f2fs-devel mailing list
> Linux-f2fs-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-06-17 2:11 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-16 3:58 [f2fs-dev] [PATCH] Fix file too large causing overflow Dylan Chang
2022-06-16 17:17 ` Jaegeuk Kim
2022-06-17 2:10 ` Chao Yu
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.