William A. Rowe, Jr. wrote:
Arghhh!!! It's transparent, not opaque, so this cannot be solved quite
this way until 2.0. I'd be interested to learn which casts masked this
flaw.
In any case - to retain our binary API versioning rules, we need to make
this fix invisible to the user's API. Contributions welcome, or when we
get to integrating this patch, hopefully one of us finds cycles to
transform the apr_sdbm_datum_t on the fly.
What about apr_int32_t in 1.3 - provided we determine it's legit?
On top of that, extend it with a second apr_int32_r reserved which would be
a simply memory placeholder to prevent a 64-bit size from overwriting the
extent of the original size? We could even make this conditional on int
being 64 bits.
So sparc/risc/ppc families are as broken as they currently are until being
rebuilt against the fix, while the others should be binary compatible w/o
a recompile.
Bill