OpenBSD CVS

CVS log for src/usr.bin/rdistd/server.c


[BACK] Up to [local] / src / usr.bin / rdistd

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.49 / (download) - annotate - [select for diffs], Mon Dec 26 19:16:02 2022 UTC (16 months, 3 weeks ago) by jmc
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3, HEAD
Changes since 1.48: +7 -7 lines
Diff to previous 1.48 (colored)

spelling fixes; from paul tagliamonte
amendments to his diff are noted on tech

Revision 1.48 / (download) - annotate - [select for diffs], Fri Jan 28 06:18:42 2022 UTC (2 years, 3 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_7_2_BASE, OPENBSD_7_2, OPENBSD_7_1_BASE, OPENBSD_7_1
Changes since 1.47: +2 -2 lines
Diff to previous 1.47 (colored)

When it's the possessive of 'it', it's spelled "its", without the
apostrophe.

Revision 1.47 / (download) - annotate - [select for diffs], Fri Jun 28 13:35:03 2019 UTC (4 years, 10 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_7_0_BASE, OPENBSD_7_0, OPENBSD_6_9_BASE, OPENBSD_6_9, OPENBSD_6_8_BASE, OPENBSD_6_8, OPENBSD_6_7_BASE, OPENBSD_6_7, OPENBSD_6_6_BASE, OPENBSD_6_6
Changes since 1.46: +18 -18 lines
Diff to previous 1.46 (colored)

When system calls indicate an error they return -1, not some arbitrary
value < 0.  errno is only updated in this case.  Change all (most?)
callers of syscalls to follow this better, and let's see if this strictness
helps us in the future.

Revision 1.46 / (download) - annotate - [select for diffs], Fri Jun 28 05:35:35 2019 UTC (4 years, 10 months ago) by deraadt
Branch: MAIN
Changes since 1.45: +2 -2 lines
Diff to previous 1.45 (colored)

mkstemp() returns -1 on failure

Revision 1.45 / (download) - annotate - [select for diffs], Fri Sep 21 19:13:49 2018 UTC (5 years, 7 months ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_6_5_BASE, OPENBSD_6_5, OPENBSD_6_4_BASE, OPENBSD_6_4
Changes since 1.44: +20 -32 lines
Diff to previous 1.44 (colored)

Use password/group cache functions and avoid stashing a pointer to
the return value of getgrgid(3) or getgrnam(3) which relies on
undefined behavior.  The rdist server will now use getgroups(2) to
determine group membership of the invoking user.  In addition, there
is now one implementation of tilde expansion instead of two.
OK tb@ tim@

Revision 1.44 / (download) - annotate - [select for diffs], Sun Sep 9 13:53:11 2018 UTC (5 years, 8 months ago) by millert
Branch: MAIN
Changes since 1.43: +6 -4 lines
Diff to previous 1.43 (colored)

Fix a crash in rdistd triggered by the recent getpw{ent,nam,uid}
changes.  This stems from rdist stashing a pointer to the static
area used by getpw{ent,nam,uid} and using it to avoid repeating
passwd lookups when pw->pw_name matches the user to be looked up.

This relied on undefined behavior, and with the recent passwd
changes, is no longer possible as the old pointer will be invalidated.
A better approach is to use the upcoming uid_from_user(3) functions.
Found by and fix OK tim@

Revision 1.43 / (download) - annotate - [select for diffs], Wed Aug 30 07:43:52 2017 UTC (6 years, 8 months ago) by otto
Branch: MAIN
CVS Tags: OPENBSD_6_3_BASE, OPENBSD_6_3, OPENBSD_6_2_BASE, OPENBSD_6_2
Changes since 1.42: +2 -2 lines
Diff to previous 1.42 (colored)

gid_t is unsigned, so < 0 test is always false, compare against (gid_t)-1
explicitly; ok millert@

Revision 1.42 / (download) - annotate - [select for diffs], Wed Mar 30 20:51:59 2016 UTC (8 years, 1 month ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_6_1_BASE, OPENBSD_6_1, OPENBSD_6_0_BASE, OPENBSD_6_0
Changes since 1.41: +3 -3 lines
Diff to previous 1.41 (colored)

Avoid compiler warning about zero-length printf format strings.
Allow a NULL format in message() and switch the two calls to
error() and message() with an empty format string to using NULL.
OK deraadt@

Revision 1.41 / (download) - annotate - [select for diffs], Wed Mar 30 17:03:06 2016 UTC (8 years, 1 month ago) by millert
Branch: MAIN
Changes since 1.40: +8 -14 lines
Diff to previous 1.40 (colored)

The change to make mkstemp(3) require at least 6 trailing Xs broke
rdistd for directories that do not exist on the destination.  Calling
mkstemp(3) twice with the same format (filled in by the first
mkstemp(3) call) is bogus so call chkparent() *before* mkstemp(3)
instead of only on error.  This costs an extra lstat(2) in the case
where the directory already exists but simplifies the code and
doesn't rely on undefined behavior (namely, the state of the template
when mkstemp fails).  OK tim@

Revision 1.40 / (download) - annotate - [select for diffs], Tue Dec 22 08:48:39 2015 UTC (8 years, 4 months ago) by mmcc
Branch: MAIN
CVS Tags: OPENBSD_5_9_BASE, OPENBSD_5_9
Changes since 1.39: +2 -2 lines
Diff to previous 1.39 (colored)

remove needless allocation casts

Revision 1.39 / (download) - annotate - [select for diffs], Tue Dec 22 08:22:33 2015 UTC (8 years, 4 months ago) by mmcc
Branch: MAIN
Changes since 1.38: +3 -3 lines
Diff to previous 1.38 (colored)

Remove a couple needless allocation casts. No binary change.

Revision 1.38 / (download) - annotate - [select for diffs], Sun Nov 15 06:18:19 2015 UTC (8 years, 6 months ago) by guenther
Branch: MAIN
Changes since 1.37: +19 -11 lines
Diff to previous 1.37 (colored)

Switch to linkat() to support hardlinked symlinks
Simplify chown logic by using fchownat()
Cache whether we're root instead of calling getuid() before each chown

Revision 1.37 / (download) - annotate - [select for diffs], Wed Jan 21 04:08:37 2015 UTC (9 years, 3 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_5_8_BASE, OPENBSD_5_8, OPENBSD_5_7_BASE, OPENBSD_5_7
Changes since 1.36: +3 -13 lines
Diff to previous 1.36 (colored)

Assume NFS_CHECK and RO_CHECK are defined.
We only need the dev_t and not the entire struct stat in mntinfo.
Delete some superfluous casts.

Revision 1.36 / (download) - annotate - [select for diffs], Wed Jan 21 03:18:31 2015 UTC (9 years, 3 months ago) by guenther
Branch: MAIN
Changes since 1.35: +19 -21 lines
Diff to previous 1.35 (colored)

Reduce opt_t from long to int.
Debug message consistency: format opts with %#x and modes with %#04o

Revision 1.35 / (download) - annotate - [select for diffs], Tue Jan 20 09:00:16 2015 UTC (9 years, 4 months ago) by guenther
Branch: MAIN
Changes since 1.34: +13 -5 lines
Diff to previous 1.34 (colored)

Split out from rdist/defs.h the client-only and server-only bits into
 rdist/client.h and rdistd/server.h
Only put #includes in .h files that are necessary for the .h to be used;
 all other #includes go in the .c files
Move all extern variable declarations to the .h files, renaming local
 variables to avoid shadowing
Replace me_type member of mntent_t with an "is NFS?" flag bit

Revision 1.34 / (download) - annotate - [select for diffs], Fri Jan 16 06:40:11 2015 UTC (9 years, 4 months ago) by deraadt
Branch: MAIN
Changes since 1.33: +12 -12 lines
Diff to previous 1.33 (colored)

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible.  Annotate <sys/param.h> lines with their current reasons.  Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc.  Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution.  These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)

Revision 1.33 / (download) - annotate - [select for diffs], Sat Jul 12 03:10:03 2014 UTC (9 years, 10 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_5_6_BASE, OPENBSD_5_6
Changes since 1.32: +9 -9 lines
Diff to previous 1.32 (colored)

Rename 'link' parameter to eliminate shadow warnings

Revision 1.32 / (download) - annotate - [select for diffs], Sat Jul 12 03:02:27 2014 UTC (9 years, 10 months ago) by guenther
Branch: MAIN
Changes since 1.31: +1 -3 lines
Diff to previous 1.31 (colored)

Yes, we have setproctitle().  Delete that and several unused HAVE_* #defines

Revision 1.31 / (download) - annotate - [select for diffs], Sat Jul 5 07:39:18 2014 UTC (9 years, 10 months ago) by guenther
Branch: MAIN
Changes since 1.30: +1 -15 lines
Diff to previous 1.30 (colored)

Assume POSIX: S_IFSOCK and S_IFIFO
Kill some 'notyet' code that will never be enabled

Revision 1.30 / (download) - annotate - [select for diffs], Sat Jul 5 07:22:18 2014 UTC (9 years, 10 months ago) by guenther
Branch: MAIN
Changes since 1.29: +3 -24 lines
Diff to previous 1.29 (colored)

Assume POSIX: lchown(), fchown(), fchmod(), fchmodat()
Assume we have rcmdsh()

Revision 1.29 / (download) - annotate - [select for diffs], Sat Jul 5 06:53:36 2014 UTC (9 years, 10 months ago) by guenther
Branch: MAIN
Changes since 1.28: +16 -19 lines
Diff to previous 1.28 (colored)

Assume POSIX: uid_t and gid_t
Add parens to quiet gcc on previous commit

Revision 1.28 / (download) - annotate - [select for diffs], Sat Jul 5 06:45:00 2014 UTC (9 years, 10 months ago) by guenther
Branch: MAIN
Changes since 1.27: +6 -3 lines
Diff to previous 1.27 (colored)

Assume POSIX: <dirent.h>, struct dirent

Revision 1.27 / (download) - annotate - [select for diffs], Sat Jul 5 06:40:54 2014 UTC (9 years, 10 months ago) by guenther
Branch: MAIN
Changes since 1.26: +3 -4 lines
Diff to previous 1.26 (colored)

Oops, fix both locations using D_NAMLEN()

Revision 1.26 / (download) - annotate - [select for diffs], Sat Jul 5 06:39:13 2014 UTC (9 years, 10 months ago) by guenther
Branch: MAIN
Changes since 1.25: +3 -4 lines
Diff to previous 1.25 (colored)

Stop using silly macro when checking for '.' and '..' directory entries

Revision 1.25 / (download) - annotate - [select for diffs], Sun Oct 27 18:31:24 2013 UTC (10 years, 6 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_5_5_BASE, OPENBSD_5_5
Changes since 1.24: +2 -2 lines
Diff to previous 1.24 (colored)

If a constant string needs a name, use a static const array instead of a
pointer or non-const array, as that minimizes the symbols, maximizes the
placement into read-only memory, and avoids warnings from gcc -Wformat=2
when they're used as format strings.

ok deraadt@

Revision 1.24 / (download) - annotate - [select for diffs], Tue Apr 16 19:24:53 2013 UTC (11 years, 1 month ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_5_4_BASE, OPENBSD_5_4
Changes since 1.23: +2 -2 lines
Diff to previous 1.23 (colored)

remove casts to time_t * which are not needed

Revision 1.23 / (download) - annotate - [select for diffs], Mon Nov 12 01:14:41 2012 UTC (11 years, 6 months ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_5_3_BASE, OPENBSD_5_3
Changes since 1.22: +11 -10 lines
Diff to previous 1.22 (colored)

Fix various format string issues.  Stop assuming time_t is long or smaller.
Enable warnings.

ok krw@, ian@

Revision 1.22 / (download) - annotate - [select for diffs], Sun Apr 10 15:47:28 2011 UTC (13 years, 1 month ago) by krw
Branch: MAIN
CVS Tags: OPENBSD_5_2_BASE, OPENBSD_5_2, OPENBSD_5_1_BASE, OPENBSD_5_1, OPENBSD_5_0_BASE, OPENBSD_5_0
Changes since 1.21: +26 -27 lines
Diff to previous 1.21 (colored)

Apply some tough type-love and give rdist a chance to handle files
larger than 2GB. Diff from Stephan R. Gerber via PR#6586, tweaks
by me.

ok deraadt@

Revision 1.21 / (download) - annotate - [select for diffs], Tue Oct 27 23:59:42 2009 UTC (14 years, 6 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_4_9_BASE, OPENBSD_4_9, OPENBSD_4_8_BASE, OPENBSD_4_8, OPENBSD_4_7_BASE, OPENBSD_4_7
Changes since 1.20: +1 -18 lines
Diff to previous 1.20 (colored)

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable).  these days, people use source.  these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms

Revision 1.20 / (download) - annotate - [select for diffs], Sat Mar 28 15:18:29 2009 UTC (15 years, 1 month ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_4_6_BASE, OPENBSD_4_6
Changes since 1.19: +13 -7 lines
Diff to previous 1.19 (colored)

pathnames with space, tab, newline, etc are encoded before being sent.
But they were not reliably being decoded, resulting in wrong naming
on the target machine.  diff from Tim van der Molen

Revision 1.19 / (download) - annotate - [select for diffs], Sun May 25 22:33:56 2008 UTC (15 years, 11 months ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_4_5_BASE, OPENBSD_4_5, OPENBSD_4_4_BASE, OPENBSD_4_4
Changes since 1.18: +22 -16 lines
Diff to previous 1.18 (colored)

Fix breakage introduced in rev 1.8 wrt rdisting symlinks.  Push the
mkstemp() down into recvfile() and use mktemp() for recvlink().
OK okan@

Revision 1.18 / (download) - annotate - [select for diffs], Tue May 13 02:13:46 2008 UTC (16 years ago) by ray
Branch: MAIN
Changes since 1.17: +12 -21 lines
Diff to previous 1.17 (colored)

Change a mktemp(3) to mkstemp(3), preventing a race condition.
Improve error checking.

OK okan@

Revision 1.17 / (download) - annotate - [select for diffs], Wed Feb 1 19:06:24 2006 UTC (18 years, 3 months ago) by otto
Branch: MAIN
CVS Tags: OPENBSD_4_3_BASE, OPENBSD_4_3, OPENBSD_4_2_BASE, OPENBSD_4_2, OPENBSD_4_1_BASE, OPENBSD_4_1, OPENBSD_4_0_BASE, OPENBSD_4_0, OPENBSD_3_9_BASE, OPENBSD_3_9
Changes since 1.16: +4 -4 lines
Diff to previous 1.16 (colored)

double semicolon; from Daniel Matic in PR 4929

Revision 1.16 / (download) - annotate - [select for diffs], Mon Jul 7 14:39:26 2003 UTC (20 years, 10 months ago) by mpech
Branch: MAIN
CVS Tags: OPENBSD_3_8_BASE, OPENBSD_3_8, OPENBSD_3_7_BASE, OPENBSD_3_7, OPENBSD_3_6_BASE, OPENBSD_3_6, OPENBSD_3_5_BASE, OPENBSD_3_5, OPENBSD_3_4_BASE, OPENBSD_3_4
Changes since 1.15: +3 -3 lines
Diff to previous 1.15 (colored)

fix readlink() usage.

millert@ ok

Revision 1.15 / (download) - annotate - [select for diffs], Tue Jun 3 02:56:15 2003 UTC (20 years, 11 months ago) by millert
Branch: MAIN
Changes since 1.14: +3 -7 lines
Diff to previous 1.14 (colored)

Remove the advertising clause in the UCB license which Berkeley
rescinded 22 July 1999.  Proofed by myself and Theo.

Revision 1.14 / (download) - annotate - [select for diffs], Wed May 14 01:34:35 2003 UTC (21 years ago) by millert
Branch: MAIN
Changes since 1.13: +440 -311 lines
Diff to previous 1.13 (colored)

 o Sync w/ freerdist 0.92 minus the compress option
 o KNF and ANSIfy the function headers

Sparse file support is currently a no-op since it didn't work.
Proper sparse file support will be added later.

Revision 1.13 / (download) - annotate - [select for diffs], Sat Apr 19 17:22:30 2003 UTC (21 years, 1 month ago) by millert
Branch: MAIN
Changes since 1.12: +15 -18 lines
Diff to previous 1.12 (colored)

strcpy/strcat/sprintf removal; krw@ OK

Revision 1.12 / (download) - annotate - [select for diffs], Thu Apr 10 22:42:29 2003 UTC (21 years, 1 month ago) by millert
Branch: MAIN
Changes since 1.11: +5 -5 lines
Diff to previous 1.11 (colored)

more POSIX chown

Revision 1.11 / (download) - annotate - [select for diffs], Sat Apr 5 20:31:58 2003 UTC (21 years, 1 month ago) by deraadt
Branch: MAIN
Changes since 1.10: +19 -15 lines
Diff to previous 1.10 (colored)

strings; ok miod ho krw

Revision 1.10 / (download) - annotate - [select for diffs], Mon Nov 19 19:02:15 2001 UTC (22 years, 6 months ago) by mpech
Branch: MAIN
CVS Tags: OPENBSD_3_3_BASE, OPENBSD_3_3, OPENBSD_3_2_BASE, OPENBSD_3_2, OPENBSD_3_1_BASE, OPENBSD_3_1
Changes since 1.9: +14 -14 lines
Diff to previous 1.9 (colored)

kill more registers

millert@ ok

Revision 1.9 / (download) - annotate - [select for diffs], Wed Sep 19 10:58:07 2001 UTC (22 years, 8 months ago) by mpech
Branch: MAIN
CVS Tags: OPENBSD_3_0_BASE, OPENBSD_3_0
Changes since 1.8: +5 -5 lines
Diff to previous 1.8 (colored)

occured->occurred

idea from deraadt@ via NetBSD
millert@ ok

p.s. Next commit will fix a typo in the sys/

Revision 1.8 / (download) - annotate - [select for diffs], Thu Feb 4 23:18:57 1999 UTC (25 years, 3 months ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_2_9_BASE, OPENBSD_2_9, OPENBSD_2_8_BASE, OPENBSD_2_8, OPENBSD_2_7_BASE, OPENBSD_2_7, OPENBSD_2_6_BASE, OPENBSD_2_6, OPENBSD_2_5_BASE, OPENBSD_2_5
Changes since 1.7: +3 -3 lines
Diff to previous 1.7 (colored)

Fix a serious memory consumption problem when running over directories
that contain many hard-linked files; johnh@isi.edu
Also add an xstrdup() that behaves like xmalloc() on failure.

Revision 1.7 / (download) - annotate - [select for diffs], Fri Jun 26 21:20:53 1998 UTC (25 years, 10 months ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_2_4_BASE, OPENBSD_2_4
Changes since 1.6: +28 -22 lines
Diff to previous 1.6 (colored)

rdist 6.1.4 + OpenBSD patches + some -Wall

Revision 1.6 / (download) - annotate - [select for diffs], Mon May 18 19:12:53 1998 UTC (26 years ago) by deraadt
Branch: MAIN
Changes since 1.5: +3 -3 lines
Diff to previous 1.5 (colored)

readlink len-1

Revision 1.5 / (download) - annotate - [select for diffs], Thu Jul 25 05:31:03 1996 UTC (27 years, 10 months ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_2_3_BASE, OPENBSD_2_3, OPENBSD_2_2_BASE, OPENBSD_2_2, OPENBSD_2_1_BASE, OPENBSD_2_1, OPENBSD_2_0_BASE, OPENBSD_2_0
Changes since 1.4: +24 -5 lines
Diff to previous 1.4 (colored)

Updated to rdist 6.1.3.  Used real snprintf() (instead of string length
in the format) since we have it.

Revision 1.4 / (download) - annotate - [select for diffs], Wed Jun 26 05:38:24 1996 UTC (27 years, 10 months ago) by deraadt
Branch: MAIN
Changes since 1.3: +3 -1 lines
Diff to previous 1.3 (colored)

rcsid

Revision 1.3 / (download) - annotate - [select for diffs], Tue Jun 25 22:43:26 1996 UTC (27 years, 10 months ago) by deraadt
Branch: MAIN
Changes since 1.2: +3 -3 lines
Diff to previous 1.2 (colored)

open O_EXCL instead of creat; for writable rdist directories... still small DOS

Revision 1.2 / (download) - annotate - [select for diffs], Tue Mar 5 03:16:21 1996 UTC (28 years, 2 months ago) by dm
Branch: MAIN
Changes since 1.1: +68 -9 lines
Diff to previous 1.1 (colored)

rdist 6.1.2

Revision 1.1 / (download) - annotate - [select for diffs], Sat Feb 3 12:13:03 1996 UTC (28 years, 3 months ago) by dm
Branch: MAIN

rdist 6.1.1

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.