diff options
author | Jeff Darcy <jdarcy@redhat.com> | 2015-07-28 16:02:50 -0400 |
---|---|---|
committer | Raghavendra G <rgowdapp@redhat.com> | 2015-07-28 21:20:40 -0700 |
commit | 8f04ec33bc86aa464a5f8b77f9d64e5608cb6f1b (patch) | |
tree | 8eabbc9666ca43bdffce68d97c12360b9d187505 /xlators/features/compress | |
parent | d051bd14223d12ca8eaea85f6988ff41e5eef2c3 (diff) |
rpc: fix concurrency bug in gf_authenticate
The basic problem is that gf_authenticate abused global variables to
pass info through dict_foreach. This is not thread-safe, but it wasn't
affecting most people until multi-threaded epoll came along. Now, if
two threads get into this code at the same time - and there's nothing to
prevent it - one of them could free one of the dicts involved while the
other is still using it.
The fix is to pass this same information using a temporary structure
instead of globals. This makes the code smaller and more efficient too.
Change-Id: I72cccc440bb40d5f7ff695250dd014762c7efb73
BUG: 1247765
Signed-off-by: Jeff Darcy <jdarcy@redhat.com>
Reviewed-on: http://review.gluster.org/11780
Tested-by: NetBSD Build System <jenkins@build.gluster.org>
Reviewed-by: Niels de Vos <ndevos@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Raghavendra G <rgowdapp@redhat.com>
Diffstat (limited to 'xlators/features/compress')
0 files changed, 0 insertions, 0 deletions