pgcrypto: remove useless px_memset() and BF_ASM
Hi Hackers,
In the thread about centralised architecture detection, I noticed that
the BF_ASM macro in crypt-blowfish.c has never been defined to anything
but 0, and the _BF_body_r() function it would call has never existed, so
that can be got rid of.
While investigating at that, I also noticed that px_memset(), which has
the comment /* memset that must not be optimized away */, is only ever
called with zero for the value, which could be better written with
explicit_bzero() now that we have that.
Attached are patches for both.
- ilmari
On 9 Apr 2026, at 13:51, Dagfinn Ilmari Mannsåker <ilmari@ilmari.org> wrote:
In the thread about centralised architecture detection, I noticed that
the BF_ASM macro in crypt-blowfish.c has never been defined to anything
but 0, and the _BF_body_r() function it would call has never existed, so
that can be got rid of.
Agreed. I didn't do enough archaeology to figure out what upstream has/had or
why it was removed, but it's been dead for 25 odd years so it's about time to
remove.
While investigating at that, I also noticed that px_memset(), which has
the comment /* memset that must not be optimized away */, is only ever
called with zero for the value, which could be better written with
explicit_bzero() now that we have that.
One could imagine various tricks for rewriting px_memset to explicit_bzero in
order to reduce the churn, but since this code is very rarely backpatched into
it's not a big problem IMHO.
I'll have another look with fresh eyes once back in the office.
--
Daniel Gustafsson