Yizhuo Zhai
2021-Nov-16 07:07 UTC
[Nouveau] [PATCH] In function nvkm_ioctl_map(), the variable "type" could be uninitialized if "nvkm_object_map()" returns error code, however, it does not check the return value and directly use the "type" in the if statement, which is potentially unsafe.
Fixes:01326050391ce("drm/nouveau/core/object: allow arguments to be passed to map function") Signed-off-by: Yizhuo Zhai <yzhai003 at ucr.edu> --- drivers/gpu/drm/nouveau/nvkm/core/ioctl.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/gpu/drm/nouveau/nvkm/core/ioctl.c b/drivers/gpu/drm/nouveau/nvkm/core/ioctl.c index 735cb6816f10..4264d9d79783 100644 --- a/drivers/gpu/drm/nouveau/nvkm/core/ioctl.c +++ b/drivers/gpu/drm/nouveau/nvkm/core/ioctl.c @@ -266,6 +266,8 @@ nvkm_ioctl_map(struct nvkm_client *client, ret = nvkm_object_map(object, data, size, &type, &args->v0.handle, &args->v0.length); + if (ret) + return ret; if (type == NVKM_OBJECT_MAP_IO) args->v0.type = NVIF_IOCTL_MAP_V0_IO; else -- 2.25.1
Yizhuo Zhai
2021-Nov-16 07:07 UTC
[Nouveau] [PATCH] In function nvkm_ioctl_map(), the variable "type" could be uninitialized if "nvkm_object_map()" returns error code, however, it does not check the return value and directly use the "type" in the if statement, which is potentially unsafe.
Fixes:01326050391ce("drm/nouveau/core/object: allow arguments to be passed to map function") Signed-off-by: Yizhuo Zhai <yzhai003 at ucr.edu> --- drivers/gpu/drm/nouveau/nvkm/core/ioctl.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/gpu/drm/nouveau/nvkm/core/ioctl.c b/drivers/gpu/drm/nouveau/nvkm/core/ioctl.c index 735cb6816f10..4264d9d79783 100644 --- a/drivers/gpu/drm/nouveau/nvkm/core/ioctl.c +++ b/drivers/gpu/drm/nouveau/nvkm/core/ioctl.c @@ -266,6 +266,8 @@ nvkm_ioctl_map(struct nvkm_client *client, ret = nvkm_object_map(object, data, size, &type, &args->v0.handle, &args->v0.length); + if (ret) + return ret; if (type == NVKM_OBJECT_MAP_IO) args->v0.type = NVIF_IOCTL_MAP_V0_IO; else -- 2.25.1
Lyude Paul
2021-Nov-16 21:17 UTC
[Nouveau] [PATCH] In function nvkm_ioctl_map(), the variable "type" could be uninitialized if "nvkm_object_map()" returns error code, however, it does not check the return value and directly use the "type" in the if statement, which is potentially unsafe.
This is a very long patch name, it should probably be shorter and the details in the patch title moved into the actual commit description instead. Also a couple of things aren't formatted correctly: * Cc tag for stable is missing, see https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html * Fixes tag isn't formatted properly I generally recommend using `dim fixes` from https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html in order to get the correct stable kernel CC tag and Fixes: tag (you can drop any of the Ccs it gives you beyond the one to stable at vger dot kernel dot org. Also, if you could try to Cc: me on the next version - will help me respond faster :). On Mon, 2021-11-15 at 23:07 -0800, Yizhuo Zhai wrote:> Fixes:01326050391ce("drm/nouveau/core/object: allow arguments to > be passed to map function") > Signed-off-by: Yizhuo Zhai <yzhai003 at ucr.edu> > --- > ?drivers/gpu/drm/nouveau/nvkm/core/ioctl.c | 2 ++ > ?1 file changed, 2 insertions(+) > > diff --git a/drivers/gpu/drm/nouveau/nvkm/core/ioctl.c > b/drivers/gpu/drm/nouveau/nvkm/core/ioctl.c > index 735cb6816f10..4264d9d79783 100644 > --- a/drivers/gpu/drm/nouveau/nvkm/core/ioctl.c > +++ b/drivers/gpu/drm/nouveau/nvkm/core/ioctl.c > @@ -266,6 +266,8 @@ nvkm_ioctl_map(struct nvkm_client *client, > ????????????????ret = nvkm_object_map(object, data, size, &type, > ????????????????????????????????????? &args->v0.handle, > ????????????????????????????????????? &args->v0.length); > +???????????????if (ret) > +???????????????????????return ret; > ????????????????if (type == NVKM_OBJECT_MAP_IO) > ????????????????????????args->v0.type = NVIF_IOCTL_MAP_V0_IO; > ????????????????else-- Cheers, Lyude Paul (she/her) Software Engineer at Red Hat