drm/nouveau/debugfs: Move an expression into a function call parameter in nouveau_deb...
authorMarkus Elfring <Markus.Elfring@web.de>
Sat, 15 Apr 2023 19:06:06 +0000 (21:06 +0200)
committerKarol Herbst <kherbst@redhat.com>
Mon, 17 Apr 2023 17:08:03 +0000 (19:08 +0200)
The address of a data structure member was determined before
a corresponding null pointer check in the implementation of
the function “nouveau_debugfs_pstate_set”.

Thus avoid the risk for undefined behaviour by moving the usage
of an expression into a parameter for a function call at the end.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1903e057-57d3-e12e-da37-008e23afd2e2@web.de
drivers/gpu/drm/nouveau/nouveau_debugfs.c

index 2a36d1c..44e26b6 100644 (file)
@@ -144,7 +144,6 @@ nouveau_debugfs_pstate_set(struct file *file, const char __user *ubuf,
        struct seq_file *m = file->private_data;
        struct drm_device *drm = m->private;
        struct nouveau_debugfs *debugfs = nouveau_debugfs(drm);
-       struct nvif_object *ctrl = &debugfs->ctrl;
        struct nvif_control_pstate_user_v0 args = { .pwrsrc = -EINVAL };
        char buf[32] = {}, *tmp, *cur = buf;
        long value, ret;
@@ -188,7 +187,8 @@ nouveau_debugfs_pstate_set(struct file *file, const char __user *ubuf,
                return ret;
        }
 
-       ret = nvif_mthd(ctrl, NVIF_CONTROL_PSTATE_USER, &args, sizeof(args));
+       ret = nvif_mthd(&debugfs->ctrl, NVIF_CONTROL_PSTATE_USER,
+                       &args, sizeof(args));
        pm_runtime_put_autosuspend(drm->dev);
        if (ret < 0)
                return ret;