In the Linux kernel, the following vulnerability has been resolved:
drm/msm: Avoid NULL dereference in msmdispstateprintregs()
If the allocation in msmdispstatedumpregs() failed then
block->state
can be NULL. The msmdispstateprintregs() function
does have code to try to handle it with:
if (*reg) dump_addr = *reg;
...but since "dump_addr" is initialized to NULL the above is actually
a noop. The code then goes on to dereference dump_addr
.
Make the function print "Registers not stored" when it sees a NULL to
solve this. Since we're touching the code, fix
msmdispstateprintregs() not to pointlessly take a double-pointer
and properly mark the pointer as const
.
Patchwork: https://patchwork.freedesktop.org/patch/619657/