On Thu, 14 Jun 2018, Liu Hao wrote:
在 2018年06月14日 18:26, Martin Storsjo 写道:
The _NSGetExecutablePath function is undocumented, but in practice,
on return, the bufsize parameter has the same value as it had on
entry; the full buffer size.
This avoids accidentally doing null termination after the end of the
allocated buffer on macOS.
Signed-off-by: Martin Storsjo <[email protected]>
---
mingw-w64-tools/widl/src/pathtools.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mingw-w64-tools/widl/src/pathtools.c
b/mingw-w64-tools/widl/src/pathtools.c
index 0378ebdd..0ccc33e8 100644
--- a/mingw-w64-tools/widl/src/pathtools.c
+++ b/mingw-w64-tools/widl/src/pathtools.c
@@ -293,7 +293,7 @@ get_executable_path(char const * argv0, char * result,
ssize_t max_size)
uint32_t bufsize = (uint32_t)max_size;
if (_NSGetExecutablePath(system_result, &bufsize) == 0)
{
- system_result_size = (ssize_t)bufsize;
+ system_result_size = strlen (system_result);
}
#elif defined(_WIN32)
unsigned long bufsize = (unsigned long)max_size;
If you can confirm this works expectedly on macOS, I am fine with it.
Yes, it does. Thanks, pushed all three patches now.
// Martin
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public