bug-gnulib
[Top][All Lists]
Advanced

[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;
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]