Initial fix was not fully working, because faulty edge shared the same address as screen area. This lead to screen freeing issues -- double free (which was supressed by guarded allocation actually) but also freed memory access when iterating via edges to free them. Solved by a small hack which removes edges with bad vertices from edges list. This prevents double-free and freed memory access cased by corrupted files we're currently fixing. In other cases this tweak is likely be harmless -- in worst case scenario it'll lead to small memory leak, which is not as much lethal as freed memory access.