$NetBSD: patch-af,v 1.4 2000/10/21 19:29:06 wiz Exp $ --- src/update.c.orig Wed Jul 26 21:29:01 2000 +++ src/update.c @@ -1374,11 +1374,18 @@ xchmod (finfo->file, 1); else { + mode_t oumask, writeaccess; + /* We know that we are the server here, so although xchmod checks umask, we don't bother. */ - mode |= (((mode & S_IRUSR) ? S_IWUSR : 0) + /* Not bothering with the umask makes the files + mode 0777 on old clients, though. -chb */ + oumask = umask(0); + (void) umask(oumask); + writeaccess = (((mode & S_IRUSR) ? S_IWUSR : 0) | ((mode & S_IRGRP) ? S_IWGRP : 0) | ((mode & S_IROTH) ? S_IWOTH : 0)); + mode |= (~oumask) & writeaccess; } } @@ -2678,7 +2685,7 @@ else { /* If the size of `ftype' changes, fix the sscanf call also */ - char ftype[16]; + char ftype[16+1]; if (sscanf (n->data, "%16s %lu", ftype, &dev_long) < 2) error (1, 0, "%s:%s has bad `special' newphrase %s", @@ -2756,7 +2763,7 @@ else { /* If the size of `ftype' changes, fix the sscanf call also */ - char ftype[16]; + char ftype[16+1]; if (sscanf (n->data, "%16s %lu", ftype, &dev_long) < 2) error (1, 0, "%s:%s has bad `special' newphrase %s",