Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package cvs for openSUSE:Factory checked in at 2026-02-07 15:33:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/cvs (Old) and /work/SRC/openSUSE:Factory/.cvs.new.1670 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cvs" Sat Feb 7 15:33:22 2026 rev:38 rq:1331720 version:1.12.13 Changes: -------- --- /work/SRC/openSUSE:Factory/cvs/cvs.changes 2024-07-25 11:50:29.785308288 +0200 +++ /work/SRC/openSUSE:Factory/.cvs.new.1670/cvs.changes 2026-02-07 15:33:45.098183594 +0100 @@ -1,0 +2,9 @@ +Fri Feb 6 16:26:33 UTC 2026 - Valentin Lefebvre <[email protected]> + +- The CVS server hangs because it assumes the compressed input + length requested will be available from the underlying stream, + which is almost always necessarily shorter due to compression. + Fixed by requesting one byte at a time. (bsc#1257000) + * fix-broken-zlib.c-implementation.patch + +------------------------------------------------------------------- New: ---- fix-broken-zlib.c-implementation.patch ----------(New B)---------- New: Fixed by requesting one byte at a time. (bsc#1257000) * fix-broken-zlib.c-implementation.patch ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cvs.spec ++++++ --- /var/tmp/diff_new_pack.gKsIPD/_old 2026-02-07 15:33:49.178353106 +0100 +++ /var/tmp/diff_new_pack.gKsIPD/_new 2026-02-07 15:33:49.186353438 +0100 @@ -1,7 +1,7 @@ # # spec file for package cvs # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -54,6 +54,7 @@ Patch29: cvs-CVE-2012-0804.patch Patch30: cvs-Bug-1053364-disallow-dash.patch Patch31: compile-with-Wformat-security.patch +Patch32: fix-broken-zlib.c-implementation.patch BuildRequires: automake BuildRequires: gdbm-devel BuildRequires: groff @@ -64,7 +65,7 @@ Requires: /bin/mktemp Requires: openssh Requires(post): %{install_info_prereq} -Requires(preun):%{install_info_prereq} +Requires(preun): %{install_info_prereq} %description CVS is a front-end to the rcs (Revision Control System) included in the @@ -108,6 +109,7 @@ %patch -P 29 %patch -P 30 -p1 %patch -P 31 -p1 +%patch -P 32 -p1 %build autoreconf -fvi ++++++ fix-broken-zlib.c-implementation.patch ++++++ >From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Derek Robert Price <[email protected]> Date: Fri, 28 Oct 2005 16:10:59 +0200 Subject: [PATCH] Fix broken zlib.c implementation * zlib.c (compress_bufer_input): Don't assume the number of bytes the caller requested will be available from the stream underlying the compression buffer - the data is compressed and should be shorter by definition. Improve comment. Fixes: https://savannah.nongnu.org/bugs/?14840 Reported-by: Rahul Bhargava <[email protected]> Upstream-Status: Backport [1.12.14] [[email protected]: Patch normalized] Signed-off-by: Ismael Luceno <[email protected]> --- zlib.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) RCS file: /sources/cvs/ccvs/src/zlib.c,v diff -u -r1.31 -r1.32 --- a/src/zlib.c +++ b/src/zlib.c @@ -221,15 +221,14 @@ point. */ assert (bd->size == 0); - /* This will work well in the server, because this call will - do an unblocked read and fetch all the available data. In - the client, this will read a single byte from the stdio - stream, which will cause us to call inflate once per byte. - It would be more efficient if we could make a call which - would fetch all the available bytes, and at least one byte. */ - + /* On the server, this will do an unblocking read of as much data as is + * available. On the client, with a blocking input descriptor and the + * current fd_buffer implementation, this should read as much data as + * is currently available, and at least 1 byte (or EOF), from the + * underlying buffer. + */ status = (*cb->buf->input) (cb->buf->closure, bd->text, - need, BUFFER_DATA_SIZE, &nread); + need ? 1 : 0, BUFFER_DATA_SIZE, &nread); if (status == -2) /* Don't try to recover from memory allcoation errors. */
