policy and the data dependent initialization is very fragile. I.e.
the code assumes because the data entry is of type foo, it has
initialized certain fields and others not.
- make sure list is not NULL before you use it.
- don't realloc on every loop iteration!
- don't increment i when there are short lines; leads to uninitialized
list[i] entries [fixes bills' core-dump, hi bill!]
- don't allocate:
char *p = malloc(len * sizeof(char *))
when you mean:
char *p = malloc(len)
- eliminate duplicated code by creating functions and try not to wrap
- use mvwinnstr instead of mvwinstr
* fdesc_attr(): don't panic for 'unknown' descriptor types, rather use
(*fp->f_ops->fo_stat)() hook, as for DTYPE_SOCKET and DTYPE_PIPE
XXX perhaps use different vnode type than VBAD for these?
* fdesc_setattr(): just return 0 regardless of type, rather than paniccing
for 'unknown' descriptor types
make sure that a failed installation of a rpe-requisite package kills
the attempt to add the package. This reverts pkg_add(1) to traditional
behaviour.
Bump version number accordingly.
* Use <dbxelf.h>.
* Undef CPP_PREDEFINES before defining it.
* Remove the undef of HANDLE_SYSV_PRAGMA; we need this in order for
weak externs to work properly.
the value fusubail in the pcb_onfault field of the wrong process if a
profiling timer interrupt happened to occur inside cpu_switch() at a
point where curproc had been updated to point to the new process but
curpcb still pointed to the old one. trap() would then fail to ignore
any page fault in fuswintr/suswintr and the system would lock up.
This bug only affected systems with kern_clock.c 1.72 or newer, as
earlier versions only call addupc_intr from interrupts that occur in
user mode. Fixed by assigning to curproc->p_addr->u_pcb.pcb_onfault
instead of curpcb->pcb_onfault, as the former is what trap() checks.
to be very unhappy with life. Audited this file again, which should
bring it back in line, and fix the problem noted by Bill Studenmund.
Thanks for taking the time to find the bug Bill.
Set this to dv_xname for scsibus and atapibus.
Set the name of the kernel thread to chan_name instead of controller's
name:channel number (so that we can use this name for controller-specific
threads).