Sebastian Lackner : mscoree: Avoid buffer overflow when mono print handler returns huge string at once.
Module: wine Branch: master Commit: e5404d4bf621c1e8bbdfd47381ce3f609d10b20a URL: http://source.winehq.org/git/wine.git/?a=commit;h=e5404d4bf621c1e8bbdfd47381... Author: Sebastian Lackner <sebastian(a)fds-team.de> Date: Fri Apr 29 17:55:43 2016 +0200 mscoree: Avoid buffer overflow when mono print handler returns huge string at once. Signed-off-by: Sebastian Lackner <sebastian(a)fds-team.de> Signed-off-by: Vincent Povirk <vincent(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/mscoree/metahost.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/dlls/mscoree/metahost.c b/dlls/mscoree/metahost.c index 252740d..30b9739 100644 --- a/dlls/mscoree/metahost.c +++ b/dlls/mscoree/metahost.c @@ -272,7 +272,13 @@ static void CDECL mono_shutdown_callback_fn(MonoProfiler *prof) static void CDECL mono_print_handler_fn(const char *string, INT is_stdout) { - wine_dbg_printf("%s", string); + const char *p; + for (; *string; string = p) + { + if ((p = strstr(string, "\n"))) p++; + else p = string + strlen(string); + wine_dbg_printf("%.*s", (int)(p - string), string); + } } static HRESULT CLRRuntimeInfo_GetRuntimeHost(CLRRuntimeInfo *This, RuntimeHost **result)
participants (1)
-
Alexandre Julliard