Paul Eggert wrote:
--- a/lib/unlink.c
+++ b/lib/unlink.c
@@ -65,10 +65,7 @@ rpl_unlink (char const *name)
           /* Trailing NUL will overwrite the trailing slash.  */
           char *short_name = malloc (len);
           if (!short_name)
-            {
-              errno = EPERM;
-              return -1;
-            }
+            return -1;
           memcpy (short_name, name, len);
           while (len && ISSLASH (short_name[len - 1]))
             short_name[--len] = '\0';

But while on POSIX systems, malloc() is guaranteed to set errno when it fails,
for native Windows systems we need the 'malloc-posix' module, in order to
guarantee this.


2020-03-21  Bruno Haible  <br...@clisp.org>

        unlink: Ensure errno also on native Windows.
        * modules/unlink (Depends-on): Add malloc-posix.

diff --git a/modules/unlink b/modules/unlink
index 63720aa..5fc84d9 100644
--- a/modules/unlink
+++ b/modules/unlink
@@ -9,6 +9,7 @@ Depends-on:
 unistd
 dosname         [test $REPLACE_UNLINK = 1]
 lstat           [test $REPLACE_UNLINK = 1]
+malloc-posix    [test $REPLACE_UNLINK = 1]
 
 configure.ac:
 gl_FUNC_UNLINK


Reply via email to