Change lpd to perform sanity and safety checks on control files as it
receives them from other hosts. This is meant to protect from both
nefarious users (which maybe broke into some remote host that we accept
print jobs from), and broken implementations of lpr on other platforms.
This is done by changing recvjob.c to call the new ctl_renametf()
routine in the new common_source/ctlinfo.[ch] files. This will not
affect jobs coming via lpr on the local machine.
Reviewed by: freebsd-print@bostonradio.org & freebsd-audit
MFC after: 16 days
The i386-specific includes in this file were "fixed" by bracketing them with
#ifndef __alpha__. Fix this for the rest of the world by turning it into
#ifdef __i386__.
Replace a call to 'alloca', thus avoiding an error when compiling on
freebsd/alpha with -ansi (and on some non-fbsd platforms). This change
can only affect the access checking of 'lpr -r'.
Fix most of the warnings generated by compiling lpr with -Wnon-const-format,
often by just telling gcc that some internal routine is "__printflike"
(work done by Kris Kennaway <kris@FreeBSD.org>). Also fix the new warnings
which show up once gcc starts checking the "printf-like parameters" passed
to those routines.
David E. O'Brien [Sun, 15 Jul 2001 00:03:01 +0000 (00:03 +0000)]
Turn off preemption on the Alpha for the time being. Peter and JHB aren't
sure when things got so bad (JHB says preemption worked just fine for months
before the AlbertVM commit). Even post DillionVM locking commit, Miatas
(DEC Personal Workstations) are very fragile -- not making it thru a world
build. With this patch it does.
Those hacking on SMPng will want to locally back out this commit. The rest
of us will want to run with it until the SMPng guys figure out the problem(s).
Change signal-handling to reset SIGCHLD to SIGDFLT instead of SIG_IGN.
This fixes a problem with using print filters (if=, of=, etc) that showed
up in -current around June 20th. That problem initially reported by
Georg-W Koltermann <gwk@sgi.com>, while most of the investigation that
led to this fix was done by Anton Berezin <tobez@FreeBSD.org>.
Matt Jacob [Sat, 14 Jul 2001 21:37:57 +0000 (21:37 +0000)]
Fix reboot hangs that have happened with multiple processors
on Alpha 4100s.
Basically, if you're halting or you're rebooting, you should
tell all other processors to halt first. Define IPI_HALT- IPI_STOP
is not what we want for this purpose, which will call prom_halt(0)
on receipt.
The processor running the halt or reboot wil send an IPI_HALT to all
other processors, delay a bit, then continue to do what what it was
planning on doing (prom_halt({0|1})).
. Integrate fdc.h into fd.c, with the removal of ft(4) there's no longer
a reason to scatter things across two files.
. Sanitize comments. Convert them into the style(9)-recommended
multi-line form, make them sentences where apprpriate, etc.
. Declare all functions on top, and declare them in the order they
appear in the file. This order is totally chaotic, but Bruce
convinced me that reordering the file wouldn't make it better either.
. Kill a `possibly uninitialized' warning (only seen with -O2) in
fd_read_status().
. Make the comments at return (0|1) statements in fdstate() consistent.
. Nuke a ``keep the compiler happy'' dummy return at the end of fdstate(),
gcc is smart enough to detect that it would never be reached anyway.
Ian Dowse [Sat, 14 Jul 2001 17:46:52 +0000 (17:46 +0000)]
This is a selection of essentially cosmetic changes:
- Use '\0' for a char instead of NULL.
- Explicitly compare against the global `nullstring' to determine if
a non-NULL uaddr is not malloc'd.
- Remove some unnecessary casting of the argument to free().
- In rpcbproc_callit_com(), move the freeing of m_uaddr to the
cleanup code at the end of the function.
- To avoid confusion and possible alignment problems, change
netbufdup() to allocate the netbuf struct and the sockaddr buffer
separately, and change netbuffree() accordingly. This makes it
produce netbufs that are consistent with all other netbufs in
rpcbind.
Peter Wemm [Sat, 14 Jul 2001 05:02:40 +0000 (05:02 +0000)]
Put on my peril-sensitive sunglasses and remove the POLA-violating
stealth hints loading. 'make release' has been fixed to not need this
now anyway. If you want static hints, specify it explicitly.
Catch up with NetBSD/pc98.
o Much cleanly separate NetBSD(XS) / FreeBSD(CAM) codes.
o Improve tagged queing support (full QTAG).
o Improve quirk support.
o Improve parity error retry.
o Impliment wide negotheation.
o Cmd link support.
o Add copyright of CAM part.
o Change for CAM_NEW_TRAN_CODE.
o Work around for buggy KME UJDCD450.
o stg: add disconnet condition.
o nsp: use suspend I/O.
and more. I thank Honda-san.
conf/options.pc98: add CT_USE_RELOCATE_OFFSET and CT_BUS_WEIGHT
dev/{ct,ncv,nsp,stg}/*_{pccard,isa}.c: add splcam() before calling
attach/detach functions.
Peter Wemm [Sat, 14 Jul 2001 00:23:10 +0000 (00:23 +0000)]
Go back to having either static OR dynamic hints, with fallback
support. Trying to fix the merged set where dynamic overrode
static was getting more and more complicated by the day.
This should fix the duplicate atkbd, psm, fd* etc in GENERIC. (which
paniced the alpha, but not the i386)
Mike Smith [Sat, 14 Jul 2001 00:12:23 +0000 (00:12 +0000)]
Merge with latest version of the Mylex 6+ driver.
- All sources are built in a single object, reducing namespace pollution.
- Kill the ready queue, and handle a busy response to mly_start in callers
rather than deferring the command.
- Improve our interaction with CAM:
- Don't advertise physical channels as SCSI busses by default.
- use the SIM queue freeze capability rather than queueing CDBs internally.
- force bus reprobe at module load time.
- Clean up more resources in mly_free.
- Tidy up debugging levels.
- Tidy up handling of events (mostly just code cleanliness).
- Use explanatory macros for operations on bus/target/channel numbers.
Ian Dowse [Fri, 13 Jul 2001 20:50:38 +0000 (20:50 +0000)]
Return a locked struct buf from ufsdirhash_lookup() to avoid one
extra getblk/brelse sequence for each lookup. We already had this
buf in ufsdirhash_lookup(), so there was no point in brelse'ing it
only to have the caller immediately reaquire the same buffer.
This should make the case of sequential lookups marginally faster;
in my tests, sequential lookups with dirhash enabled are now only
around 1% slower than without dirhash.
Bruce A. Mah [Fri, 13 Jul 2001 20:16:43 +0000 (20:16 +0000)]
Markup fixes: Move <screen></screen> and <programlisting></programlisting>
outside <para></para>. Some other minor adjustments around <screen></screen>
tags.
David E. O'Brien [Fri, 13 Jul 2001 18:45:06 +0000 (18:45 +0000)]
I really should have just commented out this intire file vs. removing all
the contents. One may still want the contents as reference for creating
/boot/device.hints.
David E. O'Brien [Fri, 13 Jul 2001 18:38:04 +0000 (18:38 +0000)]
Bump net.inet.tcp.sendspace to 32k and net.inet.tcp.recvspace to 65k.
This should help us in nieve benchmark "tests".
It seems a wide number of people think 32k buffers would not cause major
issues, and is in fact in use by many other OS's at this time. The
receive buffers can be bumped higher as buffers are hardly used and several
research papers indicate that receive buffers rarely use much space at all.
Submitted by: Leo Bicknell <bicknell@ufp.org>
<20010713101107.B9559@ussenterprise.ufp.org>
Agreed to in principle by: dillon (at the 32k level)
Jacques Vidrine [Fri, 13 Jul 2001 18:12:13 +0000 (18:12 +0000)]
Bug fix: When the client connects to a server and Kerberos
authentication is enabled, the client effectively ignores any error
from krb5_rd_rep due to a missing branch.
In theory this could result in an ssh client using Kerberos 5
authentication accepting a spoofed AP-REP. I doubt this is a real
possiblity, however, because the AP-REP is passed from the server to
the client via the SSH encrypted channel. Any tampering should cause
the decryption or MAC to fail.
David E. O'Brien [Fri, 13 Jul 2001 17:43:38 +0000 (17:43 +0000)]
Hints processing is FUBAR'ed right now.
By default, we will end up with a duplicate set of hints if people have
a properly populated /boot/device.hints. So for now, remove the hints
here until Peter revisits the new hints processing from mid-June that
broke Alpha booting.
After some (long-standing ;-) critics from Bruce, throw away the old
device search code i introduce nearly six years ago in rev 1.8. Bruce
suggested to rather use the device name of the root filesystem instead
which is certainly the most sensible default. Since there are many
possible cases for a root filesystem name (device with and without
slices, consider /dev/vinum/root even though it currently could not
work as such), there's some heuristic using a RE in order to find out
the canonical device name from the mounted name. This probably won't
quite fit for a NFS root (can't test that right now), but then,
there's hard to find a good default for those machines anyway. ;-)
This unbreaks the functionality of rev 1.2 i once broke in 1.8. :)
Whine if we discover an unknown option. This program doesn't use
getopt(3) (and can't be converted without breaking compatibility), and
it's very irritating to have it silently DTWT if one combines options
together (e.g., "-msS domain,server").
Ruslan Ermilov [Fri, 13 Jul 2001 09:06:00 +0000 (09:06 +0000)]
Import latest mdoc(7) fixes of mine.
Fold -xwidth functionality into -width. .Bl now tests whether
string immediately following a leading dot starts with a valid
macro name.
Added similar functionality to the -column list's column width
specifiers. For example, the following now works as expected:
.Bl -column ".Va hw.crusoe.percentage" ".Vt integer" "Changeable"
.It Sy "Name\tType\tChangeable\tDescription"
.It Va hw.crusoe.longrun Ta Vt integer Ta yes Ta "LongRun mode:"
.It Ta Ta Ta "0: minimum frequency mode"
.It Ta Ta Ta "1: power-saving mode"
.It Ta Ta Ta "2: performance mode"
.It Ta Ta Ta "3: maximum frequency mode"
.It Va hw.crusoe.frequency Ta Vt integer Ta no Ta "Current frequency (MHz)."
.It Va hw.crusoe.voltage Ta Vt integer Ta no Ta "Current voltage (mV)."
.It Va hw.crusoe.percentage Ta Vt integer Ta no Ta "Processing performance (%)."
.El
This is especially useful for groff devices with variable width
fonts, like -Tps or -TX100.
Bill Paul [Thu, 12 Jul 2001 22:51:59 +0000 (22:51 +0000)]
Deal with the condition where we lose link in the middle of transmitting
a bunch of frames. In this case, the dc_link flag is cleared, and dc_start()
stops draining the if_snd send queue, which results in lots of 'no buffers
available' errors being reported to applications. The whole idea behind
not draining the send queue until the link comes up was to avoid having
the gratuitous ARP being lost while we're waiting for autoneg to complete
after the interface is first brought up. As an optimization, change the
test in dc_start() so that we only bail if dc_link is not set _and_ there
are less than 10 packets in the send queue. If the queue has many frames
in it, we need to drain them. If the queue has a small number of frames
in it, we can hold off on sending them until the link comes up.
Peter Wemm [Thu, 12 Jul 2001 13:01:17 +0000 (13:01 +0000)]
Use the real structure names explicitly. Note that this is mostly for
reading old a.out core files, which are totally 100% non-understandable
to the gdb floating-point reader if you have SSE turned on.
This should be the last of the world build breakers...