The vDbgPrintEx[1] sends a message to the Windows kernel debugger, if
"DBG_PRINT" is defined. The va_start and va_end macros[2] fetch
function's optional arguments. They only move the list pointer around,
so va_start after va_end is safe.

I don't see a problem with this and it sounds useful, so it's an ACK.

[1]
<http://msdn.microsoft.com/en-us/library/windows/hardware/ff556075%28v=vs.85%29.aspx>
[2] <http://msdn.microsoft.com/en-us/library/kb57fad8%28v=vs.71%29.aspx>

-- 
Samuli Seppänen
Community Manager
OpenVPN Technologies, Inc

irc freenode net: mattock


> Signed-off-by: Alon Bar-Lev <alon.bar...@gmail.com>
> ---
>  src/error.c |    5 +++++
>  1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/src/error.c b/src/error.c
> index 5b25f48..0541bc3 100755
> --- a/src/error.c
> +++ b/src/error.c
> @@ -81,6 +81,11 @@ MyDebugPrint (const unsigned char* format, ...)
>             NTSTATUS status;
>             char *end;
>  
> +#ifdef DBG_PRINT
> +           va_start (args, format);
> +           vDbgPrintEx (DPFLTR_IHVNETWORK_ID, DPFLTR_INFO_LEVEL, format, 
> args);
> +           va_end (args);
> +#endif
>             va_start (args, format);
>             status = RtlStringCchVPrintfExA (g_Debug.text + g_Debug.out,
>                                              remaining,


Reply via email to