erofs-utils: fix use-after-free in closedir

No need to closedir _dir again since it has been released.

Signed-off-by: Huang Jianan <huangjianan@oppo.com>
Signed-off-by: Guo Weichao <guoweichao@oppo.com>
Link: https://lore.kernel.org/r/20201127110616.34232-1-huangjianan@oppo.com
Reviewed-by: Gao Xiang <hsiangkao@redhat.com>
[ Gao Xiang: slightly fix the subject of the patch. ]
Signed-off-by: Gao Xiang <hsiangkao@aol.com>
diff --git a/lib/inode.c b/lib/inode.c
index eb2e0f2..388d21d 100644
--- a/lib/inode.c
+++ b/lib/inode.c
@@ -958,11 +958,11 @@
 
 	ret = erofs_prepare_dir_file(dir);
 	if (ret)
-		goto err_closedir;
+		goto err;
 
 	ret = erofs_prepare_inode_buffer(dir);
 	if (ret)
-		goto err_closedir;
+		goto err;
 
 	if (IS_ROOT(dir))
 		erofs_fixup_meta_blkaddr(dir);
@@ -988,7 +988,7 @@
 fail:
 			d->inode = NULL;
 			d->type = EROFS_FT_UNKNOWN;
-			goto err_closedir;
+			goto err;
 		}
 
 		d->type = erofs_type_by_mode[d->inode->i_mode >> S_SHIFT];
@@ -1003,6 +1003,7 @@
 
 err_closedir:
 	closedir(_dir);
+err:
 	return ERR_PTR(ret);
 }