]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
e2image.c (scramble_dir_block): Make sure the unused space
authorTheodore Ts'o <tytso@mit.edu>
Wed, 26 Jan 2005 16:37:46 +0000 (11:37 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Wed, 26 Jan 2005 16:37:46 +0000 (11:37 -0500)
in the '.' and '..' directory entries are cleared when
e2image -rs is specified.

misc/ChangeLog
misc/e2image.c

index 573b7fe5b0a9fb0a5955619ed8b6df9b5b0bcfc1..ba99457edd6c30a99522c6f474bad04058eaebd8 100644 (file)
@@ -1,3 +1,9 @@
+2005-01-26  Theodore Ts'o  <tytso@mit.edu>
+
+       * e2image.c (scramble_dir_block): Make sure the unused space
+               in the '.' and '..' directory entries are cleared when
+               e2image -rs is specified.
+
 2005-01-24  Theodore Ts'o  <tytso@mit.edu>
 
        * tune2fs.8.in: Clarified man page about the -c option.
index 5bca6b59684e13f9fa20ad695ca29373e354dd9f..a7fc9b5d6c232a84152134d7c026aa56f6c31eb3 100644 (file)
@@ -371,16 +371,16 @@ static void scramble_dir_block(ext2_filsys fs, blk_t blk, char *buf)
                        dirent->name_len = rec_len - 8;
                        continue;
                }
-               if (dirent->name_len==1 && p[8] == '.')
-                       continue;
-               if (dirent->name_len==2 && p[8] == '.' && p[9] == '.')
-                       continue;
-
                cp = p+8;
-               memset(cp, 'A', dirent->name_len);
                len = rec_len - dirent->name_len - 8;
                if (len > 0)
                        memset(cp+dirent->name_len, 0, len);
+               if (dirent->name_len==1 && cp[0] == '.')
+                       continue;
+               if (dirent->name_len==2 && cp[0] == '.' && cp[1] == '.')
+                       continue;
+
+               memset(cp, 'A', dirent->name_len);
                len = dirent->name_len;
                id = name_id[len]++;
                while ((len > 0) && (id > 0)) {