Re: [exim] Compile errors strcpy = strlcpy ????

Top Page
Delete this message
Reply to this message
Author: Philip Hazel
Date:  
To: Doug Block
CC: exim-users
Subject: Re: [exim] Compile errors strcpy = strlcpy ????
On Mon, 12 Sep 2005, Doug Block wrote:

> First set of errors
>
> acl.o(.text+0xac5): In function `acl_verify_csa':
> : warning: strcpy() is almost always misused, please use strlcpy()


strlcpy() is not a standard C function, and I try hard to stick to
standard functions where possible, to improve portability. As this is a
warning, it shouldn't be a problem in practice.

> filter.o(.text+0x10a3): In function `read_command':
> : warning: strcat() is almost always misused, please use strlcat()


Ditto.

> daemon.o(.text+0x1dc5): In function `daemon_go':
> : warning: sprintf() is often misused, please use snprintf()


Ditto. In fact, when Tom accidentally used snprintf() in some of his
code, there were complaints from some people who could no longer compile
Exim.

> acl.o(.text+0x1fd8): In function `acl_ratelimit':
> : undefined reference to `exp'


exp() *is* a standard C function...

> acl.o(.text+0xac7): In function `acl_verify_csa':
> : undefined reference to `Ustrlcpy'


I use a macro called Ustrcpy() to access the strcpy() function with
unsigned character arguments. You've broken something with your changes.

The only real problem seems to be the lack of exp(), which should be
defined in <math.h>.

-- 
Philip Hazel            University of Cambridge Computing Service,
ph10@???      Cambridge, England. Phone: +44 1223 334714.
Get the Exim 4 book:    http://www.uit.co.uk/exim-book