On 7/13/21 9:30 AM, Xiaochen Zou wrote:
j1939_session_destroy() will free both session and session->priv. It leads to multiple use-after-free read and write in j1939_session_deactivate() when session was freed in j1939_session_deactivate_locked(). The free chain is j1939_session_deactivate_locked()-> j1939_session_put()->__j1939_session_release()->j1939_session_destroy(). To fix this bug, I moved j1939_session_put() behind j1939_session_deactivate_locked() and guarded it with a check of active since the session would be freed only if active is true.
Please include your Signed-off-by. See https://elixir.bootlin.com/linux/v5.12/source/Documentation/process/submitti...
Marc