[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: new module write-any-file
From: |
Paul Eggert |
Subject: |
Re: new module write-any-file |
Date: |
Fri, 30 Mar 2007 00:09:48 -0700 |
User-agent: |
Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) |
Bruno Haible <address@hidden> writes:
>> Perhaps it's the "else #else" which confused you? (It certainly confuses
>> me...)
>
> If it confuses even you, then it's late time to make this code more
> readable!
OK, thanks, I installed this. It's not exactly what you recommended, but
it should be good enough.
2007-03-30 Paul Eggert <address@hidden>
* lib/write-any-file.c (can_write_any_file): Fix else-else bug
reported by Bruno Haible.
--- lib/write-any-file.c 23 Mar 2007 17:33:07 -0000 1.1
+++ lib/write-any-file.c 30 Mar 2007 07:08:47 -0000
@@ -34,10 +34,11 @@ bool
can_write_any_file (void)
{
static bool initialized;
- static bool can;
+ static bool can_write;
if (! initialized)
{
+ bool can = false;
#if defined PRIV_EFFECTIVE && defined PRIV_FILE_DAC_WRITE
priv_set_t *pset = priv_allocset ();
if (pset)
@@ -47,13 +48,13 @@ can_write_any_file (void)
&& priv_ismember (pset, PRIV_FILE_DAC_WRITE));
priv_freeset (pset);
}
- else
#else
/* In traditional Unix, only root can unlink directories. */
can = (geteuid () == 0);
#endif
+ can_write = can;
initialized = true;
}
- return can;
+ return can_write;
}