On 16. 1. 26 17:12, Jun Omae wrote:
On Fri, Jan 16, 2026 at 8:45 AM<[email protected]> wrote:
Author: brane
Date: Thu Jan 15 23:45:34 2026
New Revision: 1931334
Log:
Remove another unchecked narrowing cast, this time in the implementation
of the adler32 checksum. Make sure we consume all the data, no matter
how improbably large it may be.
* build/ac-macros/zlib.m4
(SVN_LIB_Z): Check if we're using a version of zlib that provides the
function adler32_z(), which uses size_t instead of unsigned int for
the length of the input data.
* build.conf
(adler32-test): Define a new unit test program.
* subversion/libsvn_subr/adler32.c: Include svn_private_config.h.
(svn__adler32_impl, svn__adler32_fn, svn__adler32_size_t,
SVN__ADLER32_SIZE_MAX): New type and macros to use adler32_z() if
available and adler32() if not, without too much clutter elsewhere.
(SVN__ADLER_MOD_BASE): Renamed from ADLER_MOD_BASE and made unsigned.
(svn__adler32): Consume huge input data sets in SVN__ADLER32_SIZE_MAX
-sized chunks. Shortcut the result if someone fed us zero-length data.
* subversion/tests/libsvn_subr/adler32-test.c: New file with tests
that compare our adler32 implementation with the one in zlib.
Added:
subversion/trunk/subversion/tests/libsvn_subr/adler32-test.c (contents,
props changed)
Modified:
subversion/trunk/build.conf
subversion/trunk/build/ac-macros/zlib.m4
subversion/trunk/subversion/libsvn_subr/adler32.c
Modified: subversion/trunk/build.conf
==============================================================================
--- subversion/trunk/build.conf Thu Jan 15 22:21:35 2026 (r1931333)
+++ subversion/trunk/build.conf Thu Jan 15 23:45:34 2026 (r1931334)
@@ -932,6 +932,14 @@ libs = libsvn_test libsvn_wc libsvn_repo
# ----------------------------------------------------------------------------
# Tests for libsvn_subr
+[adler32-test]
+description = Test our implementation of the adler32 checksum.
+type = exe
+path = subversion/tests/libsvn_subr
+sources = adler32-test.c
+install = test
+libs = libsvn_test libsvn_subr apr
+
[auth-test]
description = Test platform-specific auth provider access
type = exe
After r1931334, link of adler32-test failing....
[[[
/usr/bin/ld:
CMakeFiles/adler32-test.dir/subversion/tests/libsvn_subr/adler32-test.c.o:
undefined reference to symbol 'adler32'
/usr/bin/ld: /lib/x86_64-linux-gnu/libz.so.1: error adding symbols:
DSO missing from command line
collect2: error: ld returned 1 exit status
]]]
It seems to be due to missing zlib for the libs for [adler32-test] in
build.conf.
You're right. Thanks for finding this.
On my laptop and on all the GitHub workers, we use zlib that's installed
in a standard location. That's why I didn't notice the bug in build.conf.
I'll fix this.
-- Brane