Skip to contentSkip to conversation

debugfs: initialize inode to 0 in list_dir_proc() if no inode nr

PATCH Applied Eric Sandeen 2 participants 2 messages Sep 17, 2011 – Sep 25, 2011

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 debugfs: initialize inode to 0 in list_dir_proc() if no inode nr

If (!ino), the inode will be uninitialized when we print it in the PARSE_OPT case.

So do the same as the LONG_OPT case, and memset it to 0 if (!ino).

---

debugfs/ls.c +6 -3
index e01fd20..f21e96e 100644
@@ -73,15 +73,18 @@ static int list_dir_proc(ext2_ino_t dir EXT2FS_ATTR((unused)),
 		lbr = rbr = ' ';
 	}
 	if (ls->options & PARSE_OPT) {
-		if (ino && debugfs_read_inode(ino, &inode, name)) return 0;
+		if (ino) {
+			if (debugfs_read_inode(ino, &inode, name))
+				return 0;
+		} else
+			memset(&inode, 0, sizeof(struct ext2_inode));
 		fprintf(ls->f,"/%u/%06o/%d/%d/%s/",ino,inode.i_mode,inode.i_uid, inode.i_gid,name);
 		if (LINUX_S_ISDIR(inode.i_mode))
 			fprintf(ls->f, "/");
 		else
 			fprintf(ls->f, "%lld/", EXT2_I_SIZE(&inode));
 		fprintf(ls->f, "\n");
-	}
-	else if (ls->options & LONG_OPT) {
+	} else if (ls->options & LONG_OPT) {
 		if (ino) {
 			if (debugfs_read_inode(ino, &inode, name))
 				return 0;
Applied
#1 lore raw
Quoted 7 lines · Eric Sandeen

If (!ino), the inode will be uninitialized when we print it in the PARSE_OPT case.

So do the same as the LONG_OPT case, and memset it to 0 if (!ino).

Applied, thanks

- Ted