fix dangling pointer issues in ext2dr
[lunaix-os.git] / lunaix-os / kernel / fs / ext2 / dir.c
index 9058c8a5e8dffdb66334cf15d15037a2c5b706e4..06933db7fd9347a462a2765f3f185c37a450fc16 100644 (file)
@@ -565,7 +565,8 @@ ext2dr_insert(struct v_inode* this, struct ext2b_dirent* dirent,
         __release_dnode_blocks(e_dno);
     }
     else {
-        *e_dno_out = e_dno;
+        *e_dno_out = valloc(sizeof(*e_dno));
+        memcpy(*e_dno_out, e_dno, sizeof(*e_dno));
     }
 
     return errno;