If a file is encrypted, its content is cipher text on the storage. So
there is no need to dump an encrypted file.

Signed-off-by: Sheng Yong <shengyo...@huawei.com>
Reviewed-by: Chao Yu <yuch...@huawei.com>
---
 fsck/dump.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/fsck/dump.c b/fsck/dump.c
index 3d64cb7..27736ae 100644
--- a/fsck/dump.c
+++ b/fsck/dump.c
@@ -410,12 +410,17 @@ static void dump_file(struct f2fs_sb_info *sbi, struct 
node_info *ni,
        struct f2fs_inode *inode = &node_blk->i;
        u32 imode = le32_to_cpu(inode->i_mode);
        u32 namelen = le32_to_cpu(inode->i_namelen);
-       unsigned char name[F2FS_NAME_LEN + 1] = {0};
+       char name[F2FS_NAME_LEN + 1] = {0};
        char path[1024] = {0};
        char ans[255] = {0};
-       int enc_name = file_enc_name(inode);
+       int is_encrypted = file_is_encrypt(inode);
        int ret;
 
+       if (is_encrypted) {
+               MSG(force, "File is encrypted\n");
+               return;
+       }
+
        if (!S_ISREG(imode) || namelen == 0 || namelen > F2FS_NAME_LEN) {
                MSG(force, "Not a regular file or wrong name info\n\n");
                return;
@@ -433,8 +438,7 @@ dump:
                ASSERT(ret >= 0);
 
                /* make a file */
-               namelen = convert_encrypted_name(inode->i_name, namelen,
-                                                       name, enc_name);
+               strncpy(name, (const char *)inode->i_name, namelen);
                name[namelen] = 0;
                sprintf(path, "./lost_found/%s", name);
 
-- 
2.11.0


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to