From 8ac7c4ca17c0ce5a462e994a28771dc78a8895ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Y=C4=B1ld=C4=B1r=C4=B1m?= <25794892+barisyild@users.noreply.github.com> Date: Mon, 14 Oct 2024 12:17:19 +0300 Subject: [PATCH] Fix sys stat size integer overflow --- src/hx/libs/std/Sys.cpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/hx/libs/std/Sys.cpp b/src/hx/libs/std/Sys.cpp index 371addf93..f85f8ac78 100644 --- a/src/hx/libs/std/Sys.cpp +++ b/src/hx/libs/std/Sys.cpp @@ -415,7 +415,8 @@ void _hx_std_sys_rename( String path, String newname ) hx::Throw(HX_CSTRING("Could not rename")); } -#define STATF(f) o->Add(HX_CSTRING(#f),(int)(s.st_##f)) +#define STATF32(f) o->Add(HX_CSTRING(#f),(int)(s.st_##f)) +#define STATF64(f) o->Add(HX_CSTRING(#f),(long)(s.st_##f)) /** sys_stat : string -> { @@ -429,7 +430,7 @@ void _hx_std_sys_rename( String path, String newname ) nlink => int, rdev => int, mode => int, - size => int + size => long } Run the [stat] command on the given file or directory. **/ @@ -465,18 +466,17 @@ Dynamic _hx_std_sys_stat( String path ) return null(); hx::Anon o = hx::Anon_obj::Create(); - STATF(gid); - STATF(uid); - STATF(atime); - STATF(mtime); - STATF(ctime); - STATF(dev); - STATF(ino); - STATF(mode); - STATF(nlink); - STATF(rdev); - STATF(size); - STATF(mode); + STATF32(gid); + STATF32(uid); + STATF32(atime); + STATF32(mtime); + STATF32(ctime); + STATF32(dev); + STATF32(ino); + STATF32(nlink); + STATF32(rdev); + STATF32(mode); + STATF64(size); return o; #endif