As reported in https://github.com/google/sanitizers/issues/639, currently ASan fails with internal CHECK in allocator on double free in recovery mode. Although there isn't reasonable expected behavior on double free (recent Glibc aborts in this case), we still want to proceed execution in hope to find more bugs (of course, without corrupting ASan internal invariants).
This patch tries to overcome the issue by adding return after ReportInvalidFree to avoid CHECK failure and pushing freed chunk into quarantine only if has CHUNK_ALLOCATED status.