]> git.sur5r.net Git - u-boot/blobdiff - fs/ext4/ext4_common.c
ext4: recover from filesystem corruption when reading
[u-boot] / fs / ext4 / ext4_common.c
index 31952f48b90d50b3af6c119540247a486b596a99..dac95453650c042ef2cc071b9a6ac94a8f007d5f 100644 (file)
@@ -660,6 +660,11 @@ static int search_dir(struct ext2_inode *parent_inode, char *dirname)
 
                offset = 0;
                do {
+                       if (offset & 3) {
+                               printf("Badly aligned ext2_dirent\n");
+                               break;
+                       }
+
                        dir = (struct ext2_dirent *)(block_buffer + offset);
                        direntname = (char*)(dir) + sizeof(struct ext2_dirent);
 
@@ -880,6 +885,11 @@ static int unlink_filename(char *filename, unsigned int blknr)
 
        offset = 0;
        do {
+               if (offset & 3) {
+                       printf("Badly aligned ext2_dirent\n");
+                       break;
+               }
+
                previous_dir = dir;
                dir = (struct ext2_dirent *)(block_buffer + offset);
                direntname = (char *)(dir) + sizeof(struct ext2_dirent);