On 28. juni 2016 13:06, Lorenz Bauer wrote:
I had a look at your changes, it seems like they obsolete my other bug report as well.
Good, I'll close that.
At the same time, I think you are introducing a double free? In copyfd1, if memalign (and friends) fails you goto done, which then proceeds to free(). Same for the case where CreateMutex or CreateFree return an error, since they happen before allocation, but also goto done.
In those cases the code leaves the HANDLE or pointer = NULL. free(NULL) does nothing. The "done:" code omits CloseHandle when the handle is NULL.
Hmm. Unless failed posix_memalign() may put garbage in the destination pointer. Probably not, but can tweak the code to be safe just in case.