ChangeLog, message.c, pass2.c, pass3.c:
Mask off the high eight bits of the directory entry's name_len field,
so that it can be used for other purposes.
diff --git a/e2fsck/message.c b/e2fsck/message.c
index c464131..82cb423 100644
--- a/e2fsck/message.c
+++ b/e2fsck/message.c
@@ -248,18 +248,18 @@
printf("%u", dirent->inode);
break;
case 'n':
- len = dirent->name_len;
+ len = dirent->name_len & 0xFF;
if (len > EXT2_NAME_LEN)
len = EXT2_NAME_LEN;
if (len > dirent->rec_len)
len = dirent->rec_len;
- printf("%.*s", dirent->name_len, dirent->name);
+ printf("%.*s", len, dirent->name);
break;
case 'r':
printf("%u", dirent->rec_len);
break;
case 'l':
- printf("%u", dirent->name_len);
+ printf("%u", dirent->name_len & 0xFF);
break;
default:
no_dirent: