Index: uuencode.c =================================================================== RCS file: /repos/src/usr.bin/uuencode/uuencode.c,v retrieving revision 1.18.30.1 diff -c -r1.18.30.1 uuencode.c *** uuencode.c 3 Aug 2009 08:13:06 -0000 1.18.30.1 --- uuencode.c 21 Dec 2011 19:55:49 -0000 *************** *** 110,118 **** mode = sb.st_mode & RWX; ++argv; break; ! case 1: #define RW (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) ! mode = RW & ~umask(RW); break; case 0: default: --- 110,121 ---- mode = sb.st_mode & RWX; ++argv; break; ! case 1: { #define RW (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) ! int om = umask(0); ! mode = RW & ~om; ! umask(om); /* restore the umask */ ! } break; case 0: default: