Fix directory leak in recurse_dir() on error