Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
npf: use rcu safe null check for sentry
se_sen field in struct session may be NULL in two cases for newly created sessions not yet added to sentry hash list, or after sesssion removed from sentry hash list during reclaim in session gc. This causes the following segmentaion fault infrequently. [Current thread is 1 (Thread 0x7ff5c3fff700 (LWP 30235))] #0 0x000055ce31a8978d in csync_get_session_from_init_sentry ( cse=<synthetic pointer>, cs=<synthetic pointer>, sp=0x7ff5f004ef36) at ../src/npf/csync/csync_session_unpack.c:38 #1 csync_session_unpack_update (csu=0x7ff5f004ef2e) at ../src/npf/csync/csync_session_unpack.c:71 #2 csync_unpack_session (size=<optimized out>, msg=0x7ff5f004ef26) at ../src/npf/csync/csync_session_unpack.c:421 #3 csync_recv_session_update (frame=<optimized out>) at ../src/npf/csync/csync_session_unpack.c:501 #4 0x000055ce31b2d57d in csync_restore_sessions (n=<optimized out>, flist=<optimized out>) at ../src/csync/csync_transfer.c:218 #5 csync_pull_batch (info=0x7ff58400b880) at ../src/csync/csync_transfer.c:506 #6 csync_xfer_backup (pipe=0x7ff58400b8e0, arg=0x7ff58400b880) at ../src/csync/csync_transfer.c:301 #7 0x00007ff6629618d3 in ?? () from /usr/lib/x86_64-linux-gnu/libczmq.so.4 #8 0x00007ff6611ad4a4 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0 #9 0x00007ff660eefd0f in clone () from /lib/x86_64-linux-gnu/libc.so.6 Fixed by doing a safe derefernce and checking for NULL. VRVDR-54586 (cherry picked from commit 5605da3)
- Loading branch information