In the Linux kernel, the following vulnerability has been resolved: scs: fix a wrong parameter in scsmagic _scsmagic() needs a 'void *' variable, but a 'struct taskstruct *' is given. 'taskscs(tsk)' is the starting address of the task's shadow call stack, and 'scsmagic(taskscs(tsk))' is the end address of the task's shadow call stack. Here should be 'scsmagic(taskscs(tsk))'. The user-visible effect of this bug is that when CONFIGDEBUGSTACKUSAGE is enabled, the shadow call stack usage checking function (scscheckusage) would scan an incorrect memory range. This could lead 1. Inaccurate stack usage reporting: The function would calculate wrong usage statistics for the shadow call stack, potentially showing incorrect value in kmsg. 2. Potential kernel crash: If the value of _scsmagic(tsk)is greater than that of _scsmagic(taskscs(tsk)), the for loop may access unmapped memory, potentially causing a kernel panic. However, this scenario is unlikely because taskstruct is allocated via the slab allocator (which typically returns lower addresses), while the shadow call stack returned by taskscs(tsk) is allocated via vmalloc(which typically returns higher addresses). However, since this is purely a debugging feature (CONFIGDEBUGSTACKUSAGE), normal production systems should be not unaffected. The bug only impacts developers and testers who are actively debugging stack usage with this configuration enabled.