From: Ondřej Surý Date: Thu, 11 Jun 2020 11:01:26 +0000 (+0200) Subject: Add missing acquire memory barrier in isc_nmhandle_unref X-Git-Tag: v9.17.3~59^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1013c0930e11e8a24d66da3dbdea26f72d25cbc2;p=thirdparty%2Fbind9.git Add missing acquire memory barrier in isc_nmhandle_unref The ThreadSanitizer uses system synchronization primitives to check for data race. The netmgr handle->references was missing acquire memory barrier before resetting and reusing the memory occupied by isc_nmhandle_t. --- diff --git a/lib/isc/netmgr/netmgr.c b/lib/isc/netmgr/netmgr.c index 9e4b692f801..35469b6dff1 100644 --- a/lib/isc/netmgr/netmgr.c +++ b/lib/isc/netmgr/netmgr.c @@ -1156,6 +1156,8 @@ isc_nmhandle_unref(isc_nmhandle_t *handle) { if (isc_refcount_decrement(&handle->references) > 1) { return; } + /* We need an acquire memory barrier here */ + (void)isc_refcount_current(&handle->references); sock = handle->sock; handle->sock = NULL;