Unless /D APR_VOID_P_IS_QUAD is explicitly defined when compiling libapr, the apr_vformatter(..) function in apr_snprintf.c is unable to handle %p pointer conversions. This is unfortunate if any formatting remains after the conversion (e.g. %s%p%s or similar). If formatting remains, the next iteration will most likely crash due to incomplete increment of data pointer. I have been unable to find any correlation between WIN64 and APR_VOID_P_IS_QUAD in the makefiles or anywhere else. In fact, the only place I found APR_VOID_P_IS_QUAD is in apr_snprintf.c. The hunt for the bug is described here: http://www.apachelounge.com/forum/viewtopic.php?t=926
APR_VOID_P_IS_QUAD is not defined anywhere and the usual way is using APR_SIZEOF_VOIDP. Patch follows.
Created attachment 20060 [details] change unknown macro
Committed, thanks!