freebsd with flexible iflib nic queues
Go to file
Andrey A. Chernov bbea88d05d I remove pending signals completely, they are not useless, they are
dangerous! Signal handlers themself must be fixed to not call malloc,
but no pended handlers, it will be correct fix. In finite case each signal
handler can set some variable which will be analized later, but calling
handler functions manually is too dangerous (f.e. signals not blocked while
the handler or handlers switch executed in this case). Of course this
code can be fixed instead of removing, but it not worth fixing in any case.

Should go into 2.2

In addition sig.c code shows following dangerous fragments (there can be more,
but I stop after two):

This fragment

    if (fn == SIG_DFL || fn == SIG_IGN) {
	handler[sig-1] = (sig_type)0;
	<------------- here
        signal(sig,fn);
    } else {

cause NULL pointer reference when signal comes
"here", but more worse fragment is below:

void handle_signals() {
    int sig;

    if (caused)
       for (sig=0; sig<__MAXSIG; sig++, caused>>=1)
           if (caused&1)
               (*handler[sig])(sig+1);
}

caused is bitmask which set corresponding bit on each signal coming.
And now imagine, what happens when some signal comes (bit sets) while loop
is executed (see caused>>=1 !!!)

In this light carrier drop situation was (as gdb shows)
1. SIGSEGV in handle_signals because some junk called as *handler reference.
2. Since SIGSEGV was pended too (== never happens),
it can cause various range of disasters.
1997-03-09 20:03:51 +00:00
bin Make mv more robust. A race has been fixed, as well as an extra warning 1997-03-08 16:05:44 +00:00
contrib Make OPIE's public API use BSD conventions. 1997-03-08 19:42:17 +00:00
eBones Revert $FreeBSD$ to $Id$ 1997-02-22 14:40:44 +00:00
etc Added forgotten directories netns and pccard. The bug was masked by 1997-03-09 06:57:00 +00:00
games Make /dev/urandom fd static, or it pick up random descriptor 1997-03-08 18:01:40 +00:00
gnu Fixed style bugs in install rule (afterinstall -> beforeinstall, etc). 1997-03-09 07:27:18 +00:00
include Don't use a dot in the chown command. In fact, don't use a chown command. 1997-03-09 07:12:37 +00:00
lib Use __ieee754_sqrt() instead of sqrt() internally. Similarly for the 1997-03-09 16:29:29 +00:00
libexec Revert $FreeBSD$ to $Id$ 1997-02-22 15:48:31 +00:00
lkm Revert $FreeBSD$ back to $Id$ 1997-02-22 12:49:29 +00:00
release Added comments regarding 3Com PCMCIA cards: 1997-03-08 20:04:20 +00:00
sbin This commit was generated by cvs2svn to compensate for changes in r23412, 1997-03-05 17:51:21 +00:00
secure Revert $FreeBSD$ to $Id$ 1997-02-22 14:40:44 +00:00
share Add reference to `PMake - A Tutorial' 1997-03-09 15:51:07 +00:00
sys Makefile generates boths IBM-PC and PC-98 version of object code in 1997-03-09 16:46:05 +00:00
tools Fix a couple of typos. 1997-03-07 01:48:24 +00:00
usr.bin Add reference to `PMake - A Tutorial' 1997-03-09 15:51:07 +00:00
usr.sbin I remove pending signals completely, they are not useless, they are 1997-03-09 20:03:51 +00:00
COPYRIGHT This is the official 4.4 Lite copyright. 1994-09-11 07:53:28 +00:00
Makefile Revert $FreeBSD$ to $Id$ 1997-02-23 15:50:34 +00:00
README Revert $FreeBSD$ to $Id$ 1997-02-23 09:21:14 +00:00

This is the top level of the FreeBSD source directory.  This file
was last revised on: $Id$

For copyright information, please see the file COPYRIGHT in this
directory (additional copyright information also exists for some
sources in this tree - please see the specific source directories for
more information).

The Makefile in this directory supports a number of targets for
building components (or all) of the FreeBSD source tree, the most
commonly used one being ``world'', which rebuilds and installs
everything in the FreeBSD system from the source tree except the
kernel.  Please see the top of the Makefile for more information on
the standard build targets and compile-time flags.

Building a kernel with config(8) is a somewhat more involved process,
documentation for which can be found at:
   http://www.freebsd.org/handbook/kernelconfig.html
And in the config(8) man page.

The sample kernel configuration files reside in the sys/i386/conf
sub-directory (assuming that you've installed the kernel sources), the
file named GENERIC being the one used to build your initial installation
kernel.  The file LINT contains entries for all possible devices, not
just those commonly used, and is meant more as a general reference
than an actual kernel configuration file (a kernel built from it
wouldn't even run).


Source Roadmap:
---------------
bin		System/User commands.

contrib		Packages contributed by 3rd parties.

eBones		Kerberos package - NOT FOR EXPORT!

etc		Template files for /etc

games		Amusements.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

lib		System libraries.

libexec		System daemons.

lkm		Loadable Kernel Modules.

release		Release building Makefile & associated tools.

sbin		System commands.

secure		DES and DES-related utilities - NOT FOR EXPORT!

share		Shared resources.

sys		Kernel sources.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.


For information on synchronizing your source tree with one or more of
the FreeBSD Project's development branches, please see:

  http://www.freebsd.org/handbook/synching.html