Luke Small <lukensm...@gmail.com> wrote:

> malloc(3) already speaks to programmers who might use int multiplication and 
> telling
> them to test for int multiplication overflow in malloc(), so you presume that 
> they are
> already prepared to use something smaller than size_t, when you could have 
> just said: 
> “only use size_t variables for integer types.” and cut out the int 
> multiplication
> overflow test example.

It seems you don't understand C, and don't want to be taught.

> In the manpage you could succinctly state:
> 
> In malloc(3):
> “If you use smaller integer types than size_t for ‘nmemb’ and ‘size’, then
> multiplication in freezero() may need to be cast to size_t to avoid integer 
> overflow:
> freezero(ptr, (size_t)nmemb * (size_t)size);”
> Or maybe even: freezero(ptr, (size_t)nmemb * size);

That is incorrect.

> Or:
> 
> void freeczero( size_t nmemb, size_t size)
> {
>         freezero(nmemb * size);
> }

Not going to happen.

> I suspect that freezero() is already little more than:
> 
> void freezero(void *ptr, size_t size)
> {
>         explicit_bzero(ptr, size);
>         free(ptr);
> }

Wrong.

Reply via email to