it looks to me that the ASan failures show places where the assumptions on buffers made for the test in` ok()` don't match the assumptions made for the passing the arguments to `wine_dbgstr*()`
by assumptions:
* is the buffer always 0 terminated? * do we care the first N bytes of the buffer (even if the size of the buffer is larger)
eg, if test use `strcmp/wcscmp` then using `wine_dbgstr_[aw]` should be "fine" ("fine" doesn't mean no overrun, but meaning same overrun behavior in test and arguments (or even more protected in `wine_dbgstr` because of the `IsBad`... call) : IOW, if the test fails in ASan, the whole code of the test should really be fixed)
most the failures I see are because:
* test just tests first byte (likely trying to test that the buffer is untouched) => we should only print first byte as Nikolay suggested (or even no argument at all as the meaning of the test is the buffer has been tempered) * test uses `memcmp, strncmp`.... (implying that the buffers could be not 0 terminated), in that case the` wine_dbgstr_[aw]n` should be used, but with the same length as the ones used in the comparison not the full buffer size