From 9e3438bee63e8550ec432a70063a721fcf6f60e2 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Sat, 25 Mar 2000 20:20:44 +0000 Subject: * sysdeps/mach/hurd/setrlimit.c (setrlimit): Go into a critical section while taking the _hurd_rlimit_lock. * sysdeps/mach/hurd/getrlimit.c (__getrlimit): Likewise. --- ChangeLog | 6 ++++++ sysdeps/mach/hurd/getrlimit.c | 4 +++- sysdeps/mach/hurd/setrlimit.c | 4 +++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 45c0b88..406bffe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2000-03-25 Roland McGrath + + * sysdeps/mach/hurd/setrlimit.c (setrlimit): Go into a critical + section while taking the _hurd_rlimit_lock. + * sysdeps/mach/hurd/getrlimit.c (__getrlimit): Likewise. + 2000-03-24 Roland McGrath * Makerules [$(cross-compiling) = yes] (symbolic-link-prog): Define diff --git a/sysdeps/mach/hurd/getrlimit.c b/sysdeps/mach/hurd/getrlimit.c index a03f4e1..1dae8a6 100644 --- a/sysdeps/mach/hurd/getrlimit.c +++ b/sysdeps/mach/hurd/getrlimit.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1993, 1994, 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1991,93,94,96,97,2000 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -34,9 +34,11 @@ __getrlimit (enum __rlimit_resource resource, struct rlimit *rlimits) return -1; } + HURD_CRITICAL_BEGIN; __mutex_lock (&_hurd_rlimit_lock); lim = _hurd_rlimits[resource]; __mutex_unlock (&_hurd_rlimit_lock); + HURD_CRITICAL_END; *rlimits = lim; diff --git a/sysdeps/mach/hurd/setrlimit.c b/sysdeps/mach/hurd/setrlimit.c index d2988d5..1ae2254 100644 --- a/sysdeps/mach/hurd/setrlimit.c +++ b/sysdeps/mach/hurd/setrlimit.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 92, 93, 94, 97, 98 Free Software Foundation, Inc. +/* Copyright (C) 1991,92,93,94,97,98,2000 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -51,9 +51,11 @@ setrlimit (resource, rlimits) if (lim.rlim_cur > lim.rlim_max) lim.rlim_cur = lim.rlim_max; + HURD_CRITICAL_BEGIN; __mutex_lock (&_hurd_rlimit_lock); _hurd_rlimits[resource] = lim; __mutex_unlock (&_hurd_rlimit_lock); + HURD_CRITICAL_END; return 0; } -- cgit v1.1