This is the mail archive of the cygwin-patches mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] fstat() problem in libc/rexec.cc


The current implementation of rexec() uses fstat() and it seems
to pick up the wrong values for st_mode. As a consequence
the code keeps complaining about the permissions for ~/.netrc
and won't complete successfully.

I don't know enough about the how the re-mapping of stat/stat64
works within cygwin1.dll itself, but changing to fstat64()
like libc/iruserok.c resolves the problem.




winsup/cygwin/Changlog


* libc/rexec.cc: Use fstat64() instead of fstat().


--- winsup/cygwin/libc/rexec.cc.orig 2009-04-06 12:11:02.046875000 -0700 +++ winsup/cygwin/libc/rexec.cc 2009-04-06 12:12:31.578125000 -0700 @@ -159,7 +159,7 @@ char myname[INTERNET_MAX_HOST_NAME_LENGTH + 1]; const char *mydomain; int t, i, c, usedefault = 0; - struct stat stb; + struct __stat64 stb;

        hdir = getenv("HOME");
        if (hdir == NULL)
@@ -218,7 +218,7 @@
                        break;
                case PASSWD:
                        if ((*aname == 0 || strcmp(*aname, "anonymous")) &&
-                           fstat(fileno(cfile), &stb) >= 0 &&
+                           fstat64(fileno(cfile), &stb) >= 0 &&
                            (stb.st_mode & 077) != 0) {
        warnx("Error: .netrc file is readable by others.");
        warnx("Remove password or make file unreadable by others.");
@@ -230,7 +230,7 @@
                        }
                        break;
                case ACCOUNT:
-                       if (fstat(fileno(cfile), &stb) >= 0
+                       if (fstat64(fileno(cfile), &stb) >= 0
                            && (stb.st_mode & 077) != 0) {
        warnx("Error: .netrc file is readable by others.");
        warnx("Remove account or make file unreadable by others.");





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]