Thanks! I hadn't even considered that wine might be the cause of that. I'll look at wine's msvcrt code and file a bug report with them.
It seems that strftime sometimes writes beyond the buffer specified instead of returning zero. It doesn't happen with all buffer sizes (eg. 21 bytes triggers the bug, but 20 bytes doesn't), but I can reliably reproduce it with the following sample code. #define __USE_MINGW_ANSI_STDIO 1 #include <stdio.h> #include <string.h> #include <time.h> int main() { time_t t; struct tm tm; char padding1[60]; char buf[21]; char padding2[60]; memset(padding1, 'x', sizeof(padding1)); memset(padding2, 'x', sizeof(padding2));...