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