* [PATCH v2 3/3] udf: handle large user and group ID
@ 2021-01-28 7:13 bingjingc
0 siblings, 0 replies; only message in thread
From: bingjingc @ 2021-01-28 7:13 UTC (permalink / raw)
To: viro, jack, jack, axboe, linux-fsdevel
Cc: linux-kernel, cccheng, bingjingc, robbieko, willy, rdunlap
From: BingJing Chang <bingjingc@synology.com>
If uid or gid of mount options is larger than INT_MAX, udf_fill_super will
return -EINVAL.
The problem can be encountered by a domain user or reproduced via:
mount -o loop,uid=2147483648 something-in-udf-format.iso /mnt
This can be fixed as commit 233a01fa9c4c ("fuse: handle large user and
group ID").
Reviewed-by: Robbie Ko <robbieko@synology.com>
Reviewed-by: Chung-Chiang Cheng <cccheng@synology.com>
Reviewed-by: Matthew Wilcox <willy@infradead.org>
Signed-off-by: BingJing Chang <bingjingc@synology.com>
---
fs/udf/super.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/fs/udf/super.c b/fs/udf/super.c
index d0df217..2f83c12 100644
--- a/fs/udf/super.c
+++ b/fs/udf/super.c
@@ -459,6 +459,7 @@ static int udf_parse_options(char *options, struct udf_options *uopt,
{
char *p;
int option;
+ unsigned int uv;
uopt->novrs = 0;
uopt->session = 0xFFFFFFFF;
@@ -508,17 +509,17 @@ static int udf_parse_options(char *options, struct udf_options *uopt,
uopt->flags &= ~(1 << UDF_FLAG_USE_SHORT_AD);
break;
case Opt_gid:
- if (match_int(args, &option))
+ if (match_uint(args, &uv))
return 0;
- uopt->gid = make_kgid(current_user_ns(), option);
+ uopt->gid = make_kgid(current_user_ns(), uv);
if (!gid_valid(uopt->gid))
return 0;
uopt->flags |= (1 << UDF_FLAG_GID_SET);
break;
case Opt_uid:
- if (match_int(args, &option))
+ if (match_uint(args, &uv))
return 0;
- uopt->uid = make_kuid(current_user_ns(), option);
+ uopt->uid = make_kuid(current_user_ns(), uv);
if (!uid_valid(uopt->uid))
return 0;
uopt->flags |= (1 << UDF_FLAG_UID_SET);
--
2.7.4
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2021-01-28 7:47 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-28 7:13 [PATCH v2 3/3] udf: handle large user and group ID bingjingc
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.