=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/cvs/rcs.c,v retrieving revision 1.227 retrieving revision 1.228 diff -c -r1.227 -r1.228 *** src/usr.bin/cvs/rcs.c 2007/11/08 20:43:42 1.227 --- src/usr.bin/cvs/rcs.c 2007/11/11 09:49:47 1.228 *************** *** 1,4 **** ! /* $OpenBSD: rcs.c,v 1.227 2007/11/08 20:43:42 tobias Exp $ */ /* * Copyright (c) 2004 Jean-Francois Brousseau * All rights reserved. --- 1,4 ---- ! /* $OpenBSD: rcs.c,v 1.228 2007/11/11 09:49:47 tobias Exp $ */ /* * Copyright (c) 2004 Jean-Francois Brousseau * All rights reserved. *************** *** 252,258 **** rcs_open(const char *path, int fd, int flags, ...) { int mode; ! mode_t fmode; RCSFILE *rfp; va_list vap; struct rcs_delta *rdp; --- 252,258 ---- rcs_open(const char *path, int fd, int flags, ...) { int mode; ! mode_t fmode, mask; RCSFILE *rfp; va_list vap; struct rcs_delta *rdp; *************** *** 267,272 **** --- 267,276 ---- va_end(vap); fmode = (mode_t)mode; } + + mask = umask(0); + umask(mask); + fmode &= ~mask; rfp = xcalloc(1, sizeof(*rfp));