E.g. Calling zbx_vsnprintf with count=0 will result in a crash on Windows. From vsnprintf_s description in MSDN (http://msdn.microsoft.com/en-us/library/d3xd30zz%28v=vs.80%29.aspx):
If buffer or format is a NULL pointer, or if count is less than or equal to zero, the invalid parameter handler is invoked. If execution is allowed to continue, these functions set errno to EINVAL and return -1.
The default invalid parameter handler causes the application to crash. Most likely a custom handler should be written, however, this would require revising return value handling for many functions, e.g., zbx_vsnprintf would behave differently on Windows if the custom handler would do nothing. Read more on MSDN:
http://msdn.microsoft.com/en-us/library/ksazx244%28v=vs.80%29.aspx