[OpenAFS] crashes in rx library on 64-Bit systems, affecting klog, aklog, etc...

Derrick J Brashear shadow@dementia.org
Wed, 14 Dec 2005 10:40:33 -0500 (EST)


Please don't cc openafs-bugs when you post to openafs-info. Then every 
clever person who just replies to all opens a new bug.

Post twice, or bcc openafs-bugs or something.

I'll take care of this.

On Wed, 14 Dec 2005, Rainer Toebbicke wrote:

> Some xdr_XXXX routines in src/rx use osi_alloc() which is defined as 
> returning a char * in rx_misc.c, but do not declare it.
> Consequently, the function call is considered to return an int which 
> truncates the pointer on systems (e.g. ia64) where an intis shorter than a 
> char *. Affected are xdr_array.c (hence everything calling pr_SNameToId()) 
> and xdr_reference.c.
>
> The attached patch declares osi_alloc by including the "rx.h" file which also 
> deals with the special cases (e.g. the different #define for kernel code).
>
> Remark: somebody has obviously noticed this already and tried to cast the 
> result of osi_alloc using (caddr_t) - I see an xdr_arrayn.c there which has 
> this. BUT: it does not work like that - casting an int to something bigger 
> doesn't recover the previous contents.
>
> -- 
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> Rainer Toebbicke
> European Laboratory for Particle Physics(CERN) - Geneva, Switzerland
> Phone: +41 22 767 8985       Fax: +41 22 767 7155
>