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: