diff options
author | Niels de Vos <ndevos@redhat.com> | 2017-07-04 20:11:11 +0200 |
---|---|---|
committer | Niels de Vos <ndevos@redhat.com> | 2017-07-09 09:14:00 +0000 |
commit | b81997264f079983fa02bd5fa2b3715224942b00 (patch) | |
tree | 89ebcdb8e910ebf5597f106990019367b53ef76e /xlators/nfs/server/src/nfs3.c | |
parent | 01bfdd4d1759423681d311da33f4ac2346ace445 (diff) |
nfs/nlm: keep track of the call-state and frame for notifications
When blocking locks are used, a new frame is allocated that is used to
send the notification to the client once once the lock becomes
available. In all other cases, the frame that contains the request from
the client will be used for the reply.
Because there was no way to track the different clients with their
requests (captured in the call-state), the call-state could be free'd
before the notification was sent to the client. This caused a
use-after-free of the call-state and could trigger segfaults of the
Gluster/NFS server or incorrect replies on (un)lock requests.
By introducing a nlm4_notify_args structure, the call-state and frame
can be tracked better. This prevents the possibility of segfaulting when
the call-state is used after being free'd.
BUG: 1467313
Change-Id: I285d2bc552f509e5145653b7a50afcff827cd612
Signed-off-by: Niels de Vos <ndevos@redhat.com>
Reviewed-on: https://review.gluster.org/17700
Smoke: Gluster Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: Kaleb KEITHLEY <kkeithle@redhat.com>
Reviewed-by: jiffin tony Thottan <jthottan@redhat.com>
Diffstat (limited to 'xlators/nfs/server/src/nfs3.c')
0 files changed, 0 insertions, 0 deletions