partway through its attempt to decode the result structure sent by
the server. If this happens, it can leave the result partially
populated with dynamically allocated memory. In this event, the
xdr_replymsg() failure is detected and RPC_CANTDECODERES is returned,
but the memory in the partially populated result struct is not
free()d.
The end result is that memory is leaked when an RPC_CANTDECODERES
error occurs. (This condition can occur if a CLIENT * handle is created
using clntudp_bufcreate() with a receive buffer size that is too small
to handle the result sent by the server.)
Fixed by setting reply_xdrs.x_op to XDR_FREE and calling
xdr_replymsg() again to free the memory if an RPC_CANTDECODERES error
is detected.
I suspect that the clnt_tcp.c, clnt_unix.c and clnt_raw.c modules
may ha a similar problem, but I haven't duplicated the condition with
those yet.
Found by: dbmalloc
flicker won't occur when set_border() is called.
- Properly restore the border color when switching virtual consoles.
Pointed out by: tony@dell.com
OKed by: sos
screen size was changed while the screen saver was inactive. Adjust
the positions of the daemon and the text and clip them accordingly
each time.
- Don't call set_border() too often. Some video chip may produce
flicker.
Pointed out by tony@dell.com
- Don't fill the entire screen with blank char every time the saver is
called. Blank only the part of the screen where the daemon and the
text was previously printed.
* Kill individual drivers 'suspend' routines, since there's no simple/safe
way to suspend/resume a card w/out going through the complete probe
at initialization time.
* Default to using the apm_pccard_resume sysctl code, which basically
pretends the card was removed, and then re-inserted. Suspend/resume
is now 'emulated' with a fake insert/removal. (Hence we no longer
need the driver-specific suspend routines.)
follow.
* Rename/reorder all of the pccard structures, change many of the member
names to be descriptive, and follow more closely other 'bus' drivers
naming schemes.
* Rename a bunch of parameter and local variable names to be more
consistant in the code.
* Renamed the PCCARD 'crd' device to be the 'card' device
* KNF and make the code consistant where it was obvious.
* ifdef'd out some unused code
o Add missing $Id$s
o Move extern decls from .c -> .h files
o Staticize
o Remove #includes from .h files
o style(9)ify includes
o bcopy -> memcpy
bzero -> memset
bcmp -> memcmp
index -> strchr
rindex -> strrchr
o Move timeout.h -> timer.h (making it consistent w/ timer.c)
o Add -Wmissing-prototypes
Link this against -lcrypt. In the case where a user does not have
a ticket available on the server, this may cause chunks to be blown
when the local kinit does not find crypt(3).
own definition of ISA_HOLE_START. We shouldn't need to include
bus/processor specific code in here, but it is required. At least by
doing it this way it becomes more obvious where the bogusness is.
Obtained from: email with bde
before any file names. This change makes pkg_add to process those
packages if @exec/@unexec commands don't contain any %[fFB]. Also
enable @exec/@unexec that have %D if the installation prefix is known to
pkg_add.
Reviewed by: jkh
but it has too much baggage).
- create a new routine 'unregister_device_interrupt', which is now used
instead of having two routines with the same code snippet.
- Minor cleanups and commenting.
[ No functional changes, just moving things around ]