[Date Prev][Date Next]
Re: (ITS#8452) LMDB: mdb_env_copyfd2 can deadlock due to missing mdb_env_cthr_toggle check
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.