Re: [PATCH 1/2] msvcrt: Introduce vfprintf helper function.
Hi, On 09/25/17 01:24, Gijs Vermeulen wrote:
-int CDECL MSVCRT_vfprintf(MSVCRT_FILE* file, const char *format, __ms_va_list valist) +static int vfprintf_helper(MSVCRT_FILE* file, const char *format, __ms_va_list valist, + MSVCRT__locale_t locale, BOOL secure) { BOOL tmp_buf; int ret;
+ if(secure) + if(!MSVCRT_CHECK_PMT(file != NULL)) return -1; + MSVCRT__lock_file(file); tmp_buf = add_std_buffer(file); - ret = pf_printf_a(puts_clbk_file_a, file, format, NULL, 0, arg_clbk_valist, NULL, &valist); + + if(!secure) + ret = pf_printf_a(puts_clbk_file_a, file, format, NULL, 0, arg_clbk_valist, NULL, &valist); + else + { + if(!locale) + ret = pf_printf_a(puts_clbk_file_a, file, format, NULL, + MSVCRT_PRINTF_INVOKE_INVALID_PARAM_HANDLER, arg_clbk_valist, NULL, &valist); + else + ret = pf_printf_a(puts_clbk_file_a, file, format, locale, 0, arg_clbk_valist, NULL, &valist); + } + if(tmp_buf) remove_std_buffer(file); MSVCRT__unlock_file(file);
return ret; } This helper changes current functions behavior.
Thanks, Piotr
participants (1)
-
Piotr Caban