diff options
Diffstat (limited to 'osdep/io.h')
-rw-r--r-- | osdep/io.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/osdep/io.h b/osdep/io.h index 5dd93a79a1..d855e852eb 100644 --- a/osdep/io.h +++ b/osdep/io.h @@ -43,9 +43,11 @@ char *mp_to_utf8(void *talloc_ctx, const wchar_t *s); // applies to unicode paths encoded with wchar_t (2 bytes on Windows). The UTF-8 // version could end up bigger in memory. In the worst case each wchar_t is // encoded to 3 bytes in UTF-8, so in the worst case we have: -// wcslen(wpath) <= strlen(utf8path) * 3 +// wcslen(wpath) * 3 <= strlen(utf8path) // Thus we need MP_PATH_MAX as the UTF-8/char version of PATH_MAX. -#define MP_PATH_MAX (FILENAME_MAX * 3) +// Also make sure there's free space for the terminating \0. +// (For codepoints encoded as UTF-16 surrogate pairs, UTF-8 has the same length.) +#define MP_PATH_MAX (FILENAME_MAX * 3 + 1) void mp_get_converted_argv(int *argc, char ***argv); |