News for hackers. Stuff that matters.
Re:Why Does Calloc Exist? by vbezhenar on Sunday November 13, 2022 @01:41AM (#33580667)
There's SIZE_MAX constant, I don't know why they didn't use it.

I'd rewrite it as `if (n != 0 && m > SIZE_MAX / n)`. Seems legit to me.

Re:Why Does Calloc Exist? by pjmlp on Sunday November 13, 2022 @04:51AM (#33581571)
Most likely to get around clever UB optimizations when checking for values beyond max sizes.
Re:Why Does Calloc Exist? by caf on Sunday November 13, 2022 @05:42AM (#33581810)
No. (size_t)-1 and SIZE_MAX are identical, there is no difference in the two ways of writing that.

Furthermore, optimisation can't bite you if you test the values before you perform the potentially UB operation (and unsigned operations can never overflow anyway, they are always well-defined).

Re:Why Does Calloc Exist? by pjmlp on Sunday November 13, 2022 @07:16AM (#33582369)
That was just an assumption, far from me to know all UB cases, I leave that for tooling.
Re:Why Does Calloc Exist? by mafuy on Sunday November 13, 2022 @05:39AM (#33581803)
But there is no such check here, is there? SIZE_MAX / SIZE_MAX is legally 1.