- `slstat' with no args dumped core.
- `slstat unit' always failed with a "sysctl linkspecific" error.
- the usage message was nonstandard.
Fixed old bugs:
- missing prototypes, Wformat errors, and other lint.
1. When a directory is renamed to an existing (empty) directory,
it is possible for the target vnode to become the source vnode
underneath you (because another process may complete the same
rename). It was assumed that this can't happen, and the bogus
errno EINVAL was returned. This was fairly harmless.
Fix: return ENOENT instead, as if the source directory was renamed
a little earlier.
2. The same metamorphosis is possible for non-directories. It was
assumed that this can't happen, and the code for handling "just
removing a link name" happened to be used. This would have worked
except for fatal bugs in the link name removal - the link name was
assumed to still be there, and a null pointer was followed.
Fix: check the result of relookup(). This fixes PR 1930.
Notes:
(a) POSIX seems to say that removing link names shall have no effect.
BSD (4.4Lite2 at least) does something reasonable instead.
(b) The relookup() may find a file unrelated to the original.
Removing this isn't correct. Consider 3 existing files A, B and
C, and concurrent renames: AB = rename(A, B), another AB, and
CA = rename("c", "a"). If rename() is atomic, then only the
following results are possible:
AB, AB (fails), CA: A = original C, B = original A, C = gone
AB, CA, AB: A = gone, B = original C, C = gone
CA, AB, AB (fails): A = gone, B = original C, C = gone
but ufs_rename() can give:
A,AB,CA,B (sorta): A = gone, B = original A, C = gone
This usually doesn't matter, since getting into a race is usually
an error.
---
These fixes should be in 2.1.6 and 2.2.
place (sysinstall.h) when packages change rev.
Change the way that the routing daemon is configured entirely, to
placate Joerg. Also auto-load gated if it's specified, while we're at it.
fully registered.
(This is the second try, the first import ignored .info files but not .info-*
files, for some reason. I'm going to make this consistent.)
Reviewed by: core
Approved for: 2.2
Reinstate the ability to use directories as input files
and make dc print an error message when trying to
lookup/set the value of an invalid register.
Suggested by: bde
instead of decimal. Also, don't use the `l' modifier for something
that has just been cast to `int' anyway.
Remove various bogus pathnames to look up rsh(1) at. Our rsh is in
/usr/bin, but never in /usr/usb, nor would it ever be called remsh...
Also, if it hasn't been found there, use execlp() to look it up. the
latter is required for `weird' environments like a fixit floppy where
the regular /usr/bin hiearrchy is not avaiable. tar should probably
do it similar to dump/restore, and use rcmd(3) instead of forking an
external process.
mappings with mlock. This problem only occurred because of the
quick unmap code not respecting the wired-ness of pages in the
process. In the future, we need to eliminate the dependency
intrinsic to the design of the code that wired pages actually
be mapped. It is kind-of bogus not to have wired pages mapped,
but it is also a weakness for the code to fall flat because
of a missing page.
This show fix a problem that Tor Egge has been having, and also
should be included into 2.2-RELEASE.
heck. Watch through our hidden camera, ladies and gentlemen,
as this one-line addition to the syslog output generates hundreds
of thousands of lines of email in response, all from people
decrying the evils of electronic noise pollution! :-)
What this change does, simply speaking, is syslog it every time
someone changes their local password. I need this at a local ISP to
tell whether people are reacting to expires in a timely fashion or
not. To disable it, uncomment -DLOGGING in the Makefile.
If your users change their passwords so often as to fill your logfile,
then you may also have another administrative problem to deal with.
appearance of this bug was the malfunctioning -M option in GNU tar (it
worked only by explicitly specifying -L).
Reviewed by: bde, and partially corrected accoring to his comments
Candidate for 2.2, IMHO even for 2.1.6.
changes to the keyboard code in pcvt, this update_led() very often
caused pcvt to hang early at boot time.
(Eventually, a better solution should be found, but the simple
omission serves well as a workaround for something that is actually a
show-stopper class problem.)
Candidate for 2.2.