On Wed, Mar 01, 2023 at 08:05:34AM -0800, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@xxxxxxxxxx> > > The protofile parser in mkfs does not check directory entry names when > populating the filesystem. The libxfs directory code doesn't check them > either, since they depend on the Linux VFS to sanitize incoming names. > If someone puts a slash in the first (name) column in the protofile, > this results in a successful format and xfs_repair -n immediately > complains. > > Screen the names that are being read from the protofile. Looks good Reviewed-by: Carlos Maiolino <cmaiolino@xxxxxxxxxx> > > Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx> > --- > mkfs/proto.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > > diff --git a/mkfs/proto.c b/mkfs/proto.c > index 68ecdbf3632..7e3fc1b8134 100644 > --- a/mkfs/proto.c > +++ b/mkfs/proto.c > @@ -326,6 +326,12 @@ newdirent( > int error; > int rsv; > > + if (!libxfs_dir2_namecheck(name->name, name->len)) { > + fprintf(stderr, _("%.*s: invalid directory entry name\n"), > + name->len, name->name); > + exit(1); > + } > + > rsv = XFS_DIRENTER_SPACE_RES(mp, name->len); > > error = -libxfs_dir_createname(tp, pip, name, inum, rsv); > -- Carlos Maiolino