fix messed-up errno if remove fails for a non-EISDIR reason
authorRich Felker <dalias@aerifal.cx>
Tue, 29 Mar 2011 12:25:59 +0000 (08:25 -0400)
committerRich Felker <dalias@aerifal.cx>
Tue, 29 Mar 2011 12:25:59 +0000 (08:25 -0400)
src/stdio/remove.c

index fc12f7c..e147ba2 100644 (file)
@@ -4,6 +4,6 @@
 
 int remove(const char *path)
 {
-       return (syscall(SYS_unlink, path) && errno == EISDIR)
-               ? syscall(SYS_rmdir, path) : 0;
+       int r = syscall(SYS_unlink, path);
+       return (r && errno == EISDIR) ? syscall(SYS_rmdir, path) : r;
 }