From mboxrd@z Thu Jan 1 00:00:00 1970 From: jsturm@sigma6.com To: java-gnats@sourceware.cygnus.com Subject: libgcj/1237: File creation doesn't observe umask Date: Wed, 20 Dec 2000 12:22:00 -0000 Message-id: <20000415153547.7888.qmail@sourceware.cygnus.com> X-SW-Source: 2000-q4/msg01015.html List-Id: >Number: 1237 >Category: libgcj >Synopsis: File creation doesn't observe umask >Confidential: no >Severity: non-critical >Priority: medium >Responsible: bryce >State: closed >Class: sw-bug >Submitter-Id: net >Arrival-Date: Wed Dec 20 12:18:06 PST 2000 >Closed-Date: Sat Apr 15 20:22:26 PDT 2000 >Last-Modified: Sat Apr 15 20:30:00 PDT 2000 >Originator: Jeff Sturm >Release: CVS libgcj >Organization: >Environment: Linux >Description: Classes that create OS files (i.e. java.io.FileOutputStream) do not obey the user's current umask. Files are always created with permissions -rw-r--r-- regardless of the user's umask setting. >How-To-Repeat: gcj Touch.java --main=Touch -o touch umask 000 rm -f x ./touch x ls -l x will print: -rw-r--r-- 1 jsturm users 0 Apr 15 11:29 x >Fix: Change mask in natFileDescriptorPosix.cc >Release-Note: >Audit-Trail: Formerly PR java.io/202 From: Bryce McKinlay To: jsturm@sigma6.com Cc: java-gnats@sourceware.cygnus.com Subject: Re: java.io/202: File creation doesn't observe umask Date: Sun, 16 Apr 2000 14:20:20 +1200 This is a multi-part message in MIME format. --------------D5D26A045441CB02CA8A32E2 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit jsturm@sigma6.com wrote: > Classes that create OS files (i.e. java.io.FileOutputStream) > do not obey the user's current umask. Files are always > created with permissions -rw-r--r-- regardless of the user's > umask setting. umask is being honored, but we're creating files with the wrong mode (so changing umask from 022 to 000 appears to have no effect). The following patch should fix that. OK to commit? regards [ bryce ] --------------D5D26A045441CB02CA8A32E2 Content-Type: text/plain; charset=us-ascii; name="filedescriptor-umask.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="filedescriptor-umask.patch" 2000-04-16 Bryce McKinlay * java/io/natFileDescriptorPosix.cc (open): Use mode 0666. Fix for PR libgcj/202. (available): Initialize `where' to prevent bogus compiler warning. Index: libjava/java/io/natFileDescriptorPosix.cc =================================================================== RCS file: /cvs/java/libgcj/libjava/java/io/natFileDescriptorPosix.cc,v retrieving revision 1.7 diff -u -r1.7 natFileDescriptorPosix.cc --- natFileDescriptorPosix.cc 2000/03/07 19:55:26 1.7 +++ natFileDescriptorPosix.cc 2000/04/16 02:14:16 @@ -83,7 +83,7 @@ #endif JvAssert ((jflags & READ) || (jflags & WRITE)); - int mode = 0644; + int mode = 0666; if ((jflags & READ) && (jflags & WRITE)) flags |= O_RDWR; else if ((jflags & READ)) @@ -281,7 +281,7 @@ if (! num_set) { struct stat sb; - off_t where; + off_t where = 0; if (fstat (fd, &sb) != -1 && S_ISREG (sb.st_mode) && (where = lseek (fd, SEEK_CUR, 0)) != (off_t) -1) --------------D5D26A045441CB02CA8A32E2-- From: Tom Tromey To: Bryce McKinlay Cc: tromey@cygnus.com, java-gnats@sourceware.cygnus.com Subject: Re: java.io/202: File creation doesn't observe umask Date: Sat, 15 Apr 2000 19:46:03 -0700 (PDT) >> Classes that create OS files (i.e. java.io.FileOutputStream) >> do not obey the user's current umask. Files are always >> created with permissions -rw-r--r-- regardless of the user's >> umask setting. Bryce> umask is being honored, but we're creating files with the Bryce> wrong mode (so changing umask from 022 to 000 appears to have Bryce> no effect). The following patch should fix that. OK to commit? When I try a simple test program with Sun's JDK (1.1.7, I think), with my umask set to 000, it creates a file with mode 0664. Do you know what JDK 1.2 does? I think it makes sense to be JDK compatible here. (When I wrote this code I didn't run a test -- I just picked what I thought would be reasonable.) Tom From: Bryce McKinlay To: Tom Tromey , java-gnats@sourceware.cygnus.com Cc: Subject: Re: java.io/202: File creation doesn't observe umask Date: Sun, 16 Apr 2000 14:51:07 +1200 With umask set to 000, Sun JDK 1.2.2 creates a 0666 file. IBM JDK 1.1.8 creates a 0664 file. I think that 1.2.2 is right here. regards [ bryce ] From: Tom Tromey To: Bryce McKinlay Cc: Tom Tromey , java-gnats@sourceware.cygnus.com Subject: Re: java.io/202: File creation doesn't observe umask Date: Sat, 15 Apr 2000 20:01:43 -0700 (PDT) Bryce> With umask set to 000, Sun JDK 1.2.2 creates a 0666 file. IBM Bryce> JDK 1.1.8 creates a 0664 file. I think that 1.2.2 is right Bryce> here. Sounds like IBM went for JDK 1.1 compatibility. Feel free to check your patch in. Tom Responsible-Changed-From-To: tromey->bryce Responsible-Changed-By: bryce Responsible-Changed-When: Sat Apr 15 20:22:26 2000 Responsible-Changed-Why: I fixed it. State-Changed-From-To: open->closed State-Changed-By: bryce State-Changed-When: Sat Apr 15 20:22:26 2000 State-Changed-Why: Patch has been checked in. From: bryce@albatross.co.nz To: bryce@albatross.co.nz, java-gnats@sourceware.cygnus.com, jsturm@sigma6.com, tromey@cygnus.com Cc: Subject: Re: java.io/202 Date: 16 Apr 2000 03:22:26 -0000 Synopsis: File creation doesn't observe umask Responsible-Changed-From-To: tromey->bryce Responsible-Changed-By: bryce Responsible-Changed-When: Sat Apr 15 20:22:26 2000 Responsible-Changed-Why: I fixed it. State-Changed-From-To: open->closed State-Changed-By: bryce State-Changed-When: Sat Apr 15 20:22:26 2000 State-Changed-Why: Patch has been checked in. http://sourceware.cygnus.com/cgi-bin/gnatsweb.pl?cmd=view&pr=202&database=java >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="Touch.java" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Touch.java" aW1wb3J0IGphdmEuaW8uRmlsZU91dHB1dFN0cmVhbTsKCnB1YmxpYyBjbGFzcyBUb3VjaCB7Cglw dWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CgkJZm9yIChpbnQgbiA9IDA7 IG4gPCBhcmdzLmxlbmd0aDsgbisrKSB7CgkJCXRyeSB7CgkJCQkobmV3IEZpbGVPdXRwdXRTdHJl YW0oYXJnc1tuXSwgdHJ1ZSkpLmNsb3NlKCk7CgkJCX0gY2F0Y2ggKFRocm93YWJsZSB0KSB7CgkJ CQlTeXN0ZW0uZXJyLnByaW50bG4odC5nZXRNZXNzYWdlKCkpOwoJCQl9CgkJfQoJfQp9Cg==