Re: [PATCH v2 3/3] ovl: fix the parsing of empty string mount parameters

From: Luis Henriques
Date: Mon Mar 11 2024 - 06:35:12 EST


Miklos Szeredi <miklos@xxxxxxxxxx> writes:

> On Thu, 7 Mar 2024 at 19:17, Luis Henriques <lhenriques@xxxxxxx> wrote:
>>
>> This patch fixes the usage of mount parameters that are defined as strings
>> but which can be empty. Currently, only 'lowerdir' parameter is in this
>> situation for overlayfs. But since userspace can pass it in as 'flag'
>> type (when it doesn't have a value), the parsing will fail because a
>> 'string' type is assumed.
>
> I don't really get why allowing a flag value instead of an empty
> string value is fixing anything.
>
> It just makes the API more liberal, but for what gain?

The point is that userspace may be passing this parameter as a flag and
not as a string. I came across this issue with ext4, by doing something
as simple as:

mount -t ext4 -o usrjquota= /dev/sda1 /mnt/

(actually, the trigger was fstest ext4/053)

The above mount should succeed. But it fails because 'usrjquota' is set
to a 'flag' type, not 'string'.

Note that I couldn't find a way to reproduce the same issue in overlayfs
with this 'lowerdir' parameter. But looking at the code the issue is
similar.

Cheers,
--
Luís