From f6e2c41db30cc3d46053de70dbfe87a5db24d58d Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Mon, 11 Jan 2021 11:14:28 +0900 Subject: [PATCH] [ruby/etc] Check blocking variables at release https://github.com/ruby/etc/commit/f017bdfedf --- ext/etc/etc.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ext/etc/etc.c b/ext/etc/etc.c index 477423c9ed..44273ff9ad 100644 --- a/ext/etc/etc.c +++ b/ext/etc/etc.c @@ -253,7 +253,9 @@ static VALUE passwd_ensure(VALUE _) { endpwent(); - passwd_blocking = 0; + if (RUBY_ATOMIC_EXCHANGE(passwd_blocking, 0) != 1) { + rb_raise(rb_eRuntimeError, "unexpected passwd_blocking"); + } return Qnil; } @@ -495,7 +497,9 @@ static VALUE group_ensure(VALUE _) { endgrent(); - group_blocking = 0; + if (RUBY_ATOMIC_EXCHANGE(group_blocking, 0) != 1) { + rb_raise(rb_eRuntimeError, "unexpected group_blocking"); + } return Qnil; }