From: Ming Lei <ming.lei@redhat.com>
To: Dan Carpenter <error27@gmail.com>
Cc: oe-kbuild@lists.linux.dev, Jens Axboe <axboe@kernel.dk>,
lkp@intel.com, oe-kbuild-all@lists.linux.dev,
linux-block@vger.kernel.org,
ZiyangZhang <ZiyangZhang@linux.alibaba.com>,
Stefan Hajnoczi <stefanha@redhat.com>
Subject: Re: [PATCH 6/6] ublk_drv: add mechanism for supporting unprivileged ublk device
Date: Tue, 22 Nov 2022 15:47:18 +0800 [thread overview]
Message-ID: <Y3x+hmn+eU68QO0E@T590> (raw)
In-Reply-To: <202211220917.c5VXrB5O-lkp@intel.com>
On Tue, Nov 22, 2022 at 10:17:47AM +0300, Dan Carpenter wrote:
> Hi Ming,
>
> https://git-scm.com/docs/git-format-patch#_base_tree_information]
>
> url: https://github.com/intel-lab-lkp/linux/commits/Ming-Lei/ublk_drv-add-mechanism-for-supporting-unprivileged-ublk-device/20221116-141131
> patch link: https://lore.kernel.org/r/20221116060835.159945-7-ming.lei%40redhat.com
> patch subject: [PATCH 6/6] ublk_drv: add mechanism for supporting unprivileged ublk device
> config: x86_64-randconfig-m001-20221121
> compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
>
> If you fix the issue, kindly add following tag where applicable
> | Reported-by: kernel test robot <lkp@intel.com>
> | Reported-by: Dan Carpenter <error27@gmail.com>
>
> smatch warnings:
> drivers/block/ublk_drv.c:2107 ublk_ctrl_uring_cmd_permission() error: uninitialized symbol 'mask'.
>
> vim +/mask +2107 drivers/block/ublk_drv.c
>
> a922b5da71a7776 Ming Lei 2022-11-16 2043 static int ublk_ctrl_uring_cmd_permission(struct ublk_device *ub,
> a922b5da71a7776 Ming Lei 2022-11-16 2044 struct io_uring_cmd *cmd)
> a922b5da71a7776 Ming Lei 2022-11-16 2045 {
> a922b5da71a7776 Ming Lei 2022-11-16 2046 struct ublksrv_ctrl_cmd *header = (struct ublksrv_ctrl_cmd *)cmd->cmd;
> a922b5da71a7776 Ming Lei 2022-11-16 2047 bool unprivileged = ub->dev_info.flags & UBLK_F_UNPRIVILEGED_DEV;
> a922b5da71a7776 Ming Lei 2022-11-16 2048 void __user *argp = (void __user *)(unsigned long)header->addr;
> a922b5da71a7776 Ming Lei 2022-11-16 2049 char *dev_path = NULL;
> a922b5da71a7776 Ming Lei 2022-11-16 2050 int ret = 0;
> a922b5da71a7776 Ming Lei 2022-11-16 2051 int mask;
> a922b5da71a7776 Ming Lei 2022-11-16 2052
> a922b5da71a7776 Ming Lei 2022-11-16 2053 if (!unprivileged) {
> a922b5da71a7776 Ming Lei 2022-11-16 2054 if (!capable(CAP_SYS_ADMIN))
> a922b5da71a7776 Ming Lei 2022-11-16 2055 return -EPERM;
> a922b5da71a7776 Ming Lei 2022-11-16 2056 /*
> a922b5da71a7776 Ming Lei 2022-11-16 2057 * The new added command of UBLK_CMD_GET_DEV_INFO2 includes
> a922b5da71a7776 Ming Lei 2022-11-16 2058 * char_dev_path in payload too, since userspace may not
> a922b5da71a7776 Ming Lei 2022-11-16 2059 * know if the specified device is created as unprivileged
> a922b5da71a7776 Ming Lei 2022-11-16 2060 * mode.
> a922b5da71a7776 Ming Lei 2022-11-16 2061 */
> a922b5da71a7776 Ming Lei 2022-11-16 2062 if (cmd->cmd_op != UBLK_CMD_GET_DEV_INFO2)
> a922b5da71a7776 Ming Lei 2022-11-16 2063 return 0;
> a922b5da71a7776 Ming Lei 2022-11-16 2064 }
> a922b5da71a7776 Ming Lei 2022-11-16 2065
> a922b5da71a7776 Ming Lei 2022-11-16 2066 /*
> a922b5da71a7776 Ming Lei 2022-11-16 2067 * User has to provide the char device path for unprivileged ublk
> a922b5da71a7776 Ming Lei 2022-11-16 2068 *
> a922b5da71a7776 Ming Lei 2022-11-16 2069 * header->addr always points to the dev path buffer, and
> a922b5da71a7776 Ming Lei 2022-11-16 2070 * header->dev_path_len records length of dev path buffer.
> a922b5da71a7776 Ming Lei 2022-11-16 2071 */
> a922b5da71a7776 Ming Lei 2022-11-16 2072 if (!header->dev_path_len || header->dev_path_len > PATH_MAX)
> a922b5da71a7776 Ming Lei 2022-11-16 2073 return -EINVAL;
> a922b5da71a7776 Ming Lei 2022-11-16 2074
> a922b5da71a7776 Ming Lei 2022-11-16 2075 if (header->len < header->dev_path_len)
> a922b5da71a7776 Ming Lei 2022-11-16 2076 return -EINVAL;
> a922b5da71a7776 Ming Lei 2022-11-16 2077
> a922b5da71a7776 Ming Lei 2022-11-16 2078 dev_path = kmalloc(header->dev_path_len, GFP_KERNEL);
> a922b5da71a7776 Ming Lei 2022-11-16 2079 if (!dev_path)
> a922b5da71a7776 Ming Lei 2022-11-16 2080 return -ENOMEM;
> a922b5da71a7776 Ming Lei 2022-11-16 2081
> a922b5da71a7776 Ming Lei 2022-11-16 2082 ret = -EFAULT;
> a922b5da71a7776 Ming Lei 2022-11-16 2083 if (copy_from_user(dev_path, argp, header->dev_path_len))
> a922b5da71a7776 Ming Lei 2022-11-16 2084 goto exit;
> a922b5da71a7776 Ming Lei 2022-11-16 2085 dev_path[header->dev_path_len] = 0;
> a922b5da71a7776 Ming Lei 2022-11-16 2086
> a922b5da71a7776 Ming Lei 2022-11-16 2087 switch (cmd->cmd_op) {
> a922b5da71a7776 Ming Lei 2022-11-16 2088 case UBLK_CMD_GET_DEV_INFO:
> a922b5da71a7776 Ming Lei 2022-11-16 2089 case UBLK_CMD_GET_DEV_INFO2:
> a922b5da71a7776 Ming Lei 2022-11-16 2090 case UBLK_CMD_GET_QUEUE_AFFINITY:
> a922b5da71a7776 Ming Lei 2022-11-16 2091 case UBLK_CMD_GET_PARAMS:
> a922b5da71a7776 Ming Lei 2022-11-16 2092 mask = MAY_READ;
> a922b5da71a7776 Ming Lei 2022-11-16 2093 break;
> a922b5da71a7776 Ming Lei 2022-11-16 2094 case UBLK_CMD_START_DEV:
> a922b5da71a7776 Ming Lei 2022-11-16 2095 case UBLK_CMD_STOP_DEV:
> a922b5da71a7776 Ming Lei 2022-11-16 2096 case UBLK_CMD_ADD_DEV:
> a922b5da71a7776 Ming Lei 2022-11-16 2097 case UBLK_CMD_DEL_DEV:
> a922b5da71a7776 Ming Lei 2022-11-16 2098 case UBLK_CMD_SET_PARAMS:
> a922b5da71a7776 Ming Lei 2022-11-16 2099 case UBLK_CMD_START_USER_RECOVERY:
> a922b5da71a7776 Ming Lei 2022-11-16 2100 case UBLK_CMD_END_USER_RECOVERY:
> a922b5da71a7776 Ming Lei 2022-11-16 2101 mask = MAY_READ | MAY_WRITE;
> a922b5da71a7776 Ming Lei 2022-11-16 2102 break;
> a922b5da71a7776 Ming Lei 2022-11-16 2103 default:
>
> mask not set on default path.
Good catch, and it is really one bug, will fix it in V2.
Thanks,
Ming
next prev parent reply other threads:[~2022-11-22 7:48 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-16 6:08 [PATCH 0/6] ublk_drv: add mechanism for supporting unprivileged ublk device Ming Lei
2022-11-16 6:08 ` [PATCH 1/6] ublk_drv: remove nr_aborted_queues from ublk_device Ming Lei
2022-11-18 9:02 ` Ziyang Zhang
2022-11-16 6:08 ` [PATCH 2/6] ublk_drv: don't probe partitions if the ubq daemon isn't trusted Ming Lei
2022-11-18 10:03 ` Ziyang Zhang
2022-11-18 11:51 ` Ming Lei
2022-11-16 6:08 ` [PATCH 3/6] ublk_drv: move ublk_get_device_from_id into ublk_ctrl_uring_cmd Ming Lei
2022-11-16 6:08 ` [PATCH 4/6] ublk_drv: add device parameter UBLK_PARAM_TYPE_DEVT Ming Lei
2022-11-16 6:08 ` [PATCH 5/6] ublk_drv: add module parameter of ublks_max for limiting max allowed ublk dev Ming Lei
2022-11-16 6:08 ` [PATCH 6/6] ublk_drv: add mechanism for supporting unprivileged ublk device Ming Lei
2022-11-17 13:17 ` Ming Lei
2022-11-22 2:02 ` kernel test robot
2022-11-22 7:17 ` Dan Carpenter
2022-11-22 7:47 ` Ming Lei [this message]
-- strict thread matches above, loose matches on Subject: below --
2022-11-27 9:50 kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Y3x+hmn+eU68QO0E@T590 \
--to=ming.lei@redhat.com \
--cc=ZiyangZhang@linux.alibaba.com \
--cc=axboe@kernel.dk \
--cc=error27@gmail.com \
--cc=linux-block@vger.kernel.org \
--cc=lkp@intel.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=oe-kbuild@lists.linux.dev \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.