diff options
| author | Raphael Zimmer <raphael.zimmer@tu-ilmenau.de> | 2026-03-18 18:09:03 +0100 |
|---|---|---|
| committer | Ilya Dryomov <idryomov@gmail.com> | 2026-04-22 01:40:22 +0200 |
| commit | 5199c125d25aeae8615c4fc31652cc0fe624338e (patch) | |
| tree | de1aeb54db56bb385db7bbecc539d158ed97c061 /include/linux/timerqueue.h | |
| parent | 028ef9c96e96197026887c0f092424679298aae8 (diff) | |
libceph: Prevent potential null-ptr-deref in ceph_handle_auth_reply()
If a message of type CEPH_MSG_AUTH_REPLY contains a zero value for both
protocol and result, this is currently not treated as an error. In case
of ac->negotiating == true and ac->protocol > 0, this leads to setting
ac->protocol = 0 and ac->ops = NULL. Thereafter, the check for
ac->protocol != protocol returns false, and init_protocol() is not
called. Subsequently, ac->ops->handle_reply() is called, which leads to
a null pointer dereference, because ac->ops is still NULL.
This patch changes the check for ac->protocol != protocol to
!ac->protocol, as this also includes the case when the protocol was set
to zero in the message. This causes the message to be treated as
containing a bad auth protocol.
Cc: stable@vger.kernel.org
Signed-off-by: Raphael Zimmer <raphael.zimmer@tu-ilmenau.de>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'include/linux/timerqueue.h')
0 files changed, 0 insertions, 0 deletions
