mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
synced 2026-11-13 07:31:07 +00:00
staging: lustre: Use after free in lnet_ptl_match_delay()
In lnet_ptl_match_delay() we check msg->msg_rx_delayed to see whether the message has been added to the delay queue. But this check is done after lnet_ptl_unlock() and lnet_res_unlock(), and the message can be processed and freed before the check. Replace the check with checking rc against LNET_MATCHMD_NONE, which is how the callers of lnet_ptl_match_delay() know whether the message was added to the delay queue. To make this work we reset rc in the loop when there was no match and the message hasn't been delayed. In addition reorganize the code and add comments to clarify the logic. In lnet_ptl_match_md() a similar msg->msg_rx_delayed is replaced for the same reason. Signed-off-by: Olaf Weber <olaf@sgi.com> Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-7324 Reviewed-on: http://review.whamcloud.com/17840 Reviewed-by: Faccini Bruno <bruno.faccini@intel.com> Reviewed-by: Liang Zhen <liang.zhen@intel.com> Reviewed-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
8f1c001271
commit
15dd253667
1 changed files with 53 additions and 31 deletions
Loading…
Add table
Add a link
Reference in a new issue