Robert Watson [Fri, 28 Jan 2000 15:22:51 +0000 (15:22 +0000)]
Fix man page structures/constants to match recent changes in acl.h
Fix a few more namespace messes and whitespace curiosities in acl.h
Fix comments in acl.h
Clean up some function prototypes from acl.h that won't be committed
before the code freeze.
Some of this kindly pointed out by: the ever patient bde
Joerg Wunsch [Fri, 28 Jan 2000 13:05:55 +0000 (13:05 +0000)]
Null commit. This is only to record that the problems mentioned in
the message of rev 1.20 only seem to happen after the recent upgrade
to groff v 1.15. Anyway, using comments instead of \c seems to be a
safe way (IMHO), so it should stay.
Merging to the current and testing with other existing multicast routers
is done by Tatsuya Jinmei <jinmei@kame.net>, who writes and maintainances
the base code in KAME distribution.
Make world check and kernel build check was also successful.
Bruce Evans [Fri, 28 Jan 2000 10:22:07 +0000 (10:22 +0000)]
Don't permit generation of non-physical disk addresses.
subr_diskmbr.c:
Don't "helpfully" enlarge our idea of the disk size to cover all the
primary slices. Instead, truncate or discard slices that don't seem
to be on the disk. The enlargement was a hack for disks that don't
report their size (e.g., MFM disks). It is just wrong in general.
wd.c:
In CHS mode, limit the disk size so that cylinder numbers >= 65536
cannot occur. This normally only affects disks larger than 33.8GB.
CHS mode accesses to addresses above the limit are now properly broken
(an error is returned instead of garbage for reads and disk corruption
for writes).
PR: 15611
Reviewed by: readers of freebsd-bugs did not respond to a request
for review
Sheldon Hearn [Fri, 28 Jan 2000 10:21:19 +0000 (10:21 +0000)]
Fix English, mdoc and layout of the previous commit, as requested by
the committer (shin). While I don't have permission for this change
from the inetd maintainer (des), I assume that shin has permission
and I'm just fixing his contribution up for him.
Okay, I couldn't resist, I made some extra changes:
* Replace ".Tn FreeBSD" with .Fx
* Make the illegal TCPMUX and IPSEC sections legal subsections
of the IMPLEMENTATION NOTES section.
Warner Losh [Fri, 28 Jan 2000 06:13:09 +0000 (06:13 +0000)]
Mitigate the stream.c attacks
o Drop all broadcast and multicast source addresses in tcp_input.
o Enable ICMP_BANDLIM in GENERIC.
o Change default to 200/s from 100/s. This will still stop the attack, but
is conservative enough to do this close to code freeze.
This is not the optimal patch for the problem, but is likely the least
intrusive patch that can be made for this.
Obtained from: Don Lewis and Matt Dillon.
Reviewed by: freebsd-security
Yoshinobu Inoue [Fri, 28 Jan 2000 05:27:14 +0000 (05:27 +0000)]
Sorry I didn't commit these files at the commit just a few minutes before.
(IPv6 multicast routing)
I think I mistakenly touched TAB and the last arg sys/netinet6 to
the cvs commit changed to sys/netinet6/in6_proto.c.
Merging to the current and testing with other existing multicast routers
is done by Tatsuya Jinmei <jinmei@kame.net>, who writes and maintainances
the base code in KAME distribution.
Make world check and kernel build check was also successful.
David Greenman [Fri, 28 Jan 2000 04:04:58 +0000 (04:04 +0000)]
Fixed sign and overflow bugs that caused the allocation size of the kernel
malloc region (kmem_map) to be wrong and semi-random on systems with more
than 1GB of RAM. This is not a complete fix, but is sufficient for
machines with 4GB or less of memory. A complete fix will require some
changes to the getenv stuff so that 64bit values can be passed around.
NOT FIXED: machines with more than 4GB of RAM (e.g. some large Alphas)
since we're still using ints to hold some of the values.
Archie Cobbs [Fri, 28 Jan 2000 02:22:22 +0000 (02:22 +0000)]
When an attempt to install a line discipline fails, check for
known KLD's that might support it, and load the KLD if found.
Currently the list includes SLIPDISC, PPPDISC, and NETGRAPHDISC.
Bill Paul [Fri, 28 Jan 2000 02:15:31 +0000 (02:15 +0000)]
Fix a bug in the uhci driver that breaks large bulk IN transfers. The
uhci_check_intr() routine needs to be more careful about deciding when
the end of a transfer has been detected.
This allows me to remove the nasty workaround code from if_aue and if_cue.
Receive performance is now much better for these adapters (500KB/sec
vs. 350KB/sec).
Also removed unused KUE_CUTOFF define from if_kuereg.h.
Submitted by: Lennart Augustsson
Reviewed by: n_hibma
Jason Evans [Thu, 27 Jan 2000 23:07:25 +0000 (23:07 +0000)]
Simplify sytem call renaming. Instead of _foo() <-- _libc_foo <-- foo(),
just use _foo() <-- foo(). In the case of a libpthread that doesn't do
call conversion (such as linuxthreads and our upcoming libpthread), this
is adequate. In the case of libc_r, we still need three names, which are
now _thread_sys_foo() <-- _foo() <-- foo().
Convert all internal libc usage of: aio_suspend(), close(), fsync(), msync(),
nanosleep(), open(), fcntl(), read(), and write() to _foo() instead of foo().
Remove all internal libc usage of: creat(), pause(), sleep(), system(),
tcdrain(), wait(), and waitpid().
Archie Cobbs [Thu, 27 Jan 2000 22:27:34 +0000 (22:27 +0000)]
Add a new sysctl "debug.enter_debugger" (when the kernel is compiled
with 'options DDB'). Setting this to `ddb' or `gdb' breaks into the
kernel debugger in the corresponding mode. This mechanism has proven
very useful at Whistle for setting breakpoints, etc., while doing
remote serial line kernel debugging.
John Baldwin [Thu, 27 Jan 2000 21:21:01 +0000 (21:21 +0000)]
Add the new cdldr CD bootstrap loader. This patch includes the following:
- Fix btxldr to preserve a NULL bootinfo pointer when it copies the kernel
arguments.
- Add the cdldr bootstrap program. This program is tacked onto the
beginning of the standard 3rd stage boot loader (/boot/loader) to form
the CD boot loader (/boot/cdboot). When a CD is booted, the cdboot file
is copied into memory instead and executed. The cdldr stub emulates the
environment normally provided by boot2 and then starts the loader. This
booting method does not emulate a floppy drive, but boots directly off of
the CD. This should fix the problems some BIOS's have with emulating a
2.88 MB floppy image.
- Add support to the loader to recognize that it has been booted by cdldr
instead of boot2 and use a simpler method of extracting the BIOS boot
device.
Josef Karthauser [Thu, 27 Jan 2000 21:17:01 +0000 (21:17 +0000)]
Historically file flags (schg, uschg, etc) have been converted from
string to u_long and back using two functions, flags_to_string and
string_to_flags, which co-existed with 'ls'. As time has progressed
more and more other tools have used these private functions to
manipulate the file flags.
Recently I moved these functions from /usr/src/bin/ls to libutil,
but after some discussion with bde it's been decided that they
really ought to go in libc.
There are two already existing libc functions for manipulating file
modes: setmode and getmode. In keeping with these flags_to_string
has been renamed getflags and string_to_flags to setflags.
The manual page could probably be improved upon ;)
John Baldwin [Thu, 27 Jan 2000 21:06:13 +0000 (21:06 +0000)]
Fix brokenness introduced with the PAGING conditional variable. The value
of %cr0 wasn't reloaded into %eax before being modified to turn protected
mode off if PAGING was not defined. The result was that the processor did
not exit protected mode, so when it tried to jump to segment 0x0 in the
next instruction to clear the prefetch cache like one should when leaving
protected mode, it actually tried to jump to a null selector, causing a
GPF.
Bill Paul [Thu, 27 Jan 2000 19:30:31 +0000 (19:30 +0000)]
Fix some typos. Mention DM9102A support. Mention support for built-in
ethernet on some Compaq Presario machines. Mention support for built-in
ethernet on LinkSys GigaDrive. :)
Joerg Wunsch [Thu, 27 Jan 2000 17:56:41 +0000 (17:56 +0000)]
Fix a problem that caused the generation of an (almost) empty first
page of -mdoc manual pages in troff mode. The problem has been
introduced in rev 1.12; apparently ending a line inside a macro
definition with \c doesn't behave as Bill expected, and troff was
fooled to believe previous output was already pending thus a new page
needed to be emitted. Using a troff comment .\" instead of \c seems
to solve this, alas the brain^Wnice sed(1) magic needs to be taught to
_not_ strip those comments now.
Ruslan Ermilov [Thu, 27 Jan 2000 16:12:03 +0000 (16:12 +0000)]
o Back out rev 1.4 - reallocf() failure clobbers existing `environ'.
o Do not override `environ' if realloc() fails, leave it intact.
o Set `alloced' only when memory is actually allocated.
Yoshinobu Inoue [Thu, 27 Jan 2000 14:46:15 +0000 (14:46 +0000)]
Avoid verbose error messages when ipsec initialization for sockets failed
usually, and print it only when debug is enabled.
(This always happens when kernel is configured without IPSEC option.)
Yoshinobu Inoue [Thu, 27 Jan 2000 10:04:28 +0000 (10:04 +0000)]
Added ip6_forwarding check when prefix related ioctl is called.
(prefix related ioctl should only be called on router,
because host use dynamic address and prefix configuration mechanism,
and those prefix are managed separately with ones whih are assined
manually.)
Peter Wemm [Thu, 27 Jan 2000 07:37:36 +0000 (07:37 +0000)]
Forced commit; should be no changes except the $FreeBSD$ line. I'm
forcing this because of hints of 'cvs wierdness' that might have caused
the ppbus_if.m errors for a few folks.
Bruce Evans [Thu, 27 Jan 2000 05:11:29 +0000 (05:11 +0000)]
Quick fix for stack overflow when there are more than about 25 slices.
Using recursion to traverse the recursive data structure for extended
partitions was never good, but when slice support was implemented in
1995, the recursion worked for the default maximum number of slices
(32), and standard fdisk utilities didn't support creating more than
the default number. Even then, corrupt extended partitions could
cause endless recursion, because we attempt to check all slices, even
ones which we don't turn into devices.
The recursion has succumbed to creeping features. The stack requirements
for each level had grown to 204 bytes on i386's. Most of the growth was
caused by adding a 64-byte copy of the DOSpartition table to each frame.
The kernel stack size has shrunk to about 5K on i386's. Most of the
shrinkage was caused by the growth of `struct sigacts' by 2388 bytes
to support 128 signals.
Linux fdisk (a 1997 version at least) can now create 60 slices (4 standard
ones, 56 for logical drives within extended partitions, and it seems to
be leaving room to map the 4 BSD partitions on my test drive), and Linux
(2.2.29 and 2.3.35 at least) now reports all these slices at boot time.
The fix limits the recursion to 16 levels (4 + 16 slices) and recovers
32 bytes per level caused by gcc pessimizing for space. Switching to
a static buffer doesn't cause any problems due to recursion, since the
buffer is not passed down. Using a static buffer is wrong in general
because it requires the giant lock to protect it. However, this problem
is small compared with using a static buffer for dsname(). We sometimes
neglect to copy the result of dsname() before sleeping.
Also fixed slice names when we find more than MAX_SLICES (32) slices.
The number of the last slice found was not passed passed recursively.
The limit on the recursion now prevents finding more than 32 slices
with a standard extended partition data structure anyway.
Matthew Dillon [Wed, 26 Jan 2000 20:51:29 +0000 (20:51 +0000)]
Fix catastrophic bug in NQNFS related to UDP mounts. The 'nqhost'
struct contains a major union for which lph_slp was being initialized
only for TCP connections, but accessed for all types of connections
leading to a crash. Also, a conditional controlling an nfs_slplock()
call contained an improper paren grouping, causing a second crash in
the UDP case.
The nqhost structure has been reorganized and lph_slp has been made a
normal structural field rather then a union field, and properly
initialized for all connection types.
Peter Wemm [Wed, 26 Jan 2000 17:38:51 +0000 (17:38 +0000)]
Sigh. Really fix it this time. It seems the first time through the
run it would modify the source tree, causing it to fail the second
time around. Sigh.
Peter Wemm [Wed, 26 Jan 2000 17:12:09 +0000 (17:12 +0000)]
Fix world breakage (kdump, truss) causes by rev 1.107 (adding dev/usb).
It was creating ${.OBJDIR}/${MACHINE}/usr/include/dev -> .../sys/dev
and mkioctls would descend that and saw *all* of src/sys/dev/*/*.h,
not just dev/usb/*.h. It then choked on the dpt includes.