Hi, ap_size_parameter_parse() (added in #829) and the LimitXMLRequestBody test from #825 depend on how strtoll() handles input containing no digits at all, such as "abc", "+", or "-".
glibc does not set errno in this case, while FreeBSD libc and musl set EINVAL, which apr_strtoff() propagates. The configuration is rejected either way, but on those systems ap_size_parameter_parse() returned APR_ERANGE instead of APR_EINVAL, contrary to its documented contract, and test_core_010_002 fails. I verified this on a FreeBSD 14.5 VM, where test_core_010_002 fails for abc123, "+", and "-", and on Alpine 3.17, where apr_strtoff() returns EINVAL for the same kind of no-conversion input. The fix is in #848; it also incorporates the #847 change to use the common parser for LimitXMLRequestBody. Our CI currently builds on Ubuntu/glibc and Windows, so it cannot catch this kind of libc difference. Would there be interest in adding a job that builds trunk on Alpine/musl in a container and runs at least the core pytest suite? FreeBSD would require a VM and is probably not worth the additional CI cost. If people agree, I can prepare a separate PR for linux.yml once these fixes are in. Regards, Arturo
