summaryrefslogtreecommitdiff
path: root/ext/etc/etc.c
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2021-01-11 11:14:28 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2021-01-11 11:39:10 +0900
commitf6e2c41db30cc3d46053de70dbfe87a5db24d58d (patch)
treeb882bcc2163e91e3efde1a919737515891a5b303 /ext/etc/etc.c
parentd8c8b79d24bf0f3177535501ad9b801e552fb2ad (diff)
[ruby/etc] Check blocking variables at release
https://github.com/ruby/etc/commit/f017bdfedf
Diffstat (limited to 'ext/etc/etc.c')
-rw-r--r--ext/etc/etc.c8
1 files 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;
}