Whamcloud - gitweb
LU-18112 mdt: check for fid from a client to match format 47/55947/2
authorAndriy Skulysh <andriy.skulysh@hpe.com>
Wed, 24 Jul 2024 17:14:06 +0000 (20:14 +0300)
committerOleg Drokin <green@whamcloud.com>
Fri, 16 Aug 2024 23:55:11 +0000 (23:55 +0000)
Access to /mnt/lustre/.lustre/fid/0x200000 passes sane checks

Change-Id: I748e519b56cce6809285bbe178e89f5872a46188
HPE-bug-id: LUS-12448
Signed-off-by: Andriy Skulysh <andriy.skulysh@hpe.com>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/55947
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Alexander Zarochentsev <alexander.zarochentsev@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/mdd/mdd_device.c

index 9068a17..9e9434d 100644 (file)
@@ -864,7 +864,9 @@ static int obf_lookup(const struct lu_env *env, struct md_object *p,
        while (*name == '[')
                name++;
 
-       sscanf(name, SFID, RFID(f));
+        if (sscanf(name, SFID, RFID(f)) != 3)
+               GOTO(out, rc = -ENOENT);
+
        if (!fid_is_sane(f))
                GOTO(out, rc = -ENOENT);