* passwd.cc (pwdgrp::read_passwd): linebuf *must* be static (from Pierre

Humblet).
* pwdgrp.h (pwdgrp::refresh): Avoid calling read function if we already have
lock since that means we are in the process of reading the file.
This commit is contained in:
Christopher Faylor 2003-01-31 17:00:42 +00:00
parent 485d85bfa7
commit 949c3da11a
3 changed files with 12 additions and 4 deletions

View File

@ -1,3 +1,10 @@
2003-01-31 Christopher Faylor <cgf@redhat.com>
* passwd.cc (pwdgrp::read_passwd): linebuf *must* be static (from
Pierre Humblet).
* pwdgrp.h (pwdgrp::refresh): Avoid calling read function if we already
have lock since that means we are in the process of reading the file.
2003-01-31 Jason Tishler <jason@tishler.net> 2003-01-31 Jason Tishler <jason@tishler.net>
* shared.cc (shared_info::heap_chunk_size): Use correct variable when * shared.cc (shared_info::heap_chunk_size): Use correct variable when

View File

@ -66,6 +66,7 @@ pwdgrp::read_passwd ()
if (wincap.has_security ()) if (wincap.has_security ())
{ {
/* must be static */
static char NO_COPY pretty_ls[] = "????????:*:-1:-1:"; static char NO_COPY pretty_ls[] = "????????:*:-1:-1:";
add_line (pretty_ls); add_line (pretty_ls);
cygsid tu = cygheap->user.sid (); cygsid tu = cygheap->user.sid ();
@ -81,7 +82,7 @@ pwdgrp::read_passwd ()
myself->uid != (__uid32_t) pw->pw_uid && myself->uid != (__uid32_t) pw->pw_uid &&
!internal_getpwuid (myself->uid)))) !internal_getpwuid (myself->uid))))
{ {
char linebuf[1024]; static char NO_COPY linebuf[1024]; // must be static
(void) cygheap->user.ontherange (CH_HOME, NULL); (void) cygheap->user.ontherange (CH_HOME, NULL);
snprintf (linebuf, sizeof (linebuf), "%s:*:%lu:%lu:,%s:%s:/bin/sh", snprintf (linebuf, sizeof (linebuf), "%s:*:%lu:%lu:,%s:%s:/bin/sh",
cygheap->user.name (), cygheap->user.name (),

View File

@ -71,9 +71,9 @@ public:
{ {
if (!check && initialized) if (!check && initialized)
return; return;
pglock->acquire (); if (pglock->acquire () == 1 &&
if (!initialized || (check && etc::file_changed (etc_ix))) (!initialized || (check && etc::file_changed (etc_ix))))
(this->*read) (); (this->*read) ();
pglock->release (); pglock->release ();
} }