You can't assume that the path is null-terminated.
I'm pretty sure I can assume `unix_path` is null-terminated. It's ultimately provided by `wine_nt_to_unix_file_name()` (`wine_get_unix_file_name()` doesn't modify it), with the line: ```c if (*size > strlen(name)) strcpy( /* unix_path = */ nameA, name ); ``` Multiple places across other DLLs assume `wine_get_unix_file_name()` provides a null-terminated string, passing its return value to e.g. `fprintf()` and `strstr()`.
In fact it shouldn't be, you should use an explicit length instead.
Whether I `strlen()` here or when first getting this buffer from `wine_get_unix_file_name()` seems irrelevant to me; is there something I'm missing?