This is an example of what I was pointing out:

On Sun, Mar 02, 2003 at 01:53:33AM +0100, Jens Rehsack wrote:
 ...
> @@ -1444,22 +1420,19 @@
>   *   none    - response sent
>   *
>   */
> -void
> -send_resp ( intf, Hdr, resp )
> -     int             intf;
> -     Snmp_Header     *Hdr;
> -     u_char          *resp;
> +static void
> +send_resp ( const int intf, Snmp_Header *Hdr, char *resp )
>  {
>       int     n;
>  
> -     if ( ilmi_fd[intf] > 0 ) {
> -         n = write ( ilmi_fd[intf], (caddr_t)&resp[1], resp[0] );
> +     if ( ilmi_fd[intf] > 0 ) { /* FIXME: does ilmi_fd[intf] exists? out of range? 
> */
> +         n = write ( ilmi_fd[intf], resp+1, resp[0] );
 ...

Here's a case where it matters whether something is u_char or char.
write(2) takes a size_t as its third arg, and extension of a char to
that may not be the same as for u_char, for example on Sparc.  If the
response is ever >127 bytes, this will fail.  You're going to have to
look carefully at how things are used to see when char is appropriate
and when u_char is necessary.

-- 
Barney Wolff         http://www.databus.com/bwresume.pdf
I'm available by contract or FT, in the NYC metro area or via the 'Net.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to