Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package perl-YAML-Syck for openSUSE:Factory checked in at 2025-10-22 12:14:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-YAML-Syck (Old) and /work/SRC/openSUSE:Factory/.perl-YAML-Syck.new.18484 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-YAML-Syck" Wed Oct 22 12:14:06 2025 rev:37 rq:1312558 version:1.360.0 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-YAML-Syck/perl-YAML-Syck.changes 2025-06-03 19:52:50.402615789 +0200 +++ /work/SRC/openSUSE:Factory/.perl-YAML-Syck.new.18484/perl-YAML-Syck.changes 2025-10-22 12:17:36.990837830 +0200 @@ -1,0 +2,12 @@ +Tue Oct 14 12:27:18 UTC 2025 - Tina Müller <[email protected]> + +- updated to 1.360.0 (1.36) + see /usr/share/doc/packages/perl-YAML-Syck/Changes + + 1.36 Oct 10 2025 + - Address memory corruption leading to 'str' value being set on empty keys + Thanks @timlegge + 1.35 Oct 9 2025 + - Address parsing error related to string detection on read for empty strings. + +------------------------------------------------------------------- Old: ---- YAML-Syck-1.34.tar.gz New: ---- README.md YAML-Syck-1.36.tar.gz _scmsync.obsinfo build.specials.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-YAML-Syck.spec ++++++ --- /var/tmp/diff_new_pack.h1HsYP/_old 2025-10-22 12:17:37.818872710 +0200 +++ /var/tmp/diff_new_pack.h1HsYP/_new 2025-10-22 12:17:37.822872878 +0200 @@ -1,7 +1,7 @@ # # spec file for package perl-YAML-Syck # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2025 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 @@ -16,19 +16,25 @@ # +%define cpan_name YAML-Syck Name: perl-YAML-Syck -Version: 1.34 +Version: 1.360.0 Release: 0 -%define cpan_name YAML-Syck -Summary: Perl YAML loader and dumper +# 1.36 -> normalize -> 1.360.0 +%define cpan_version 1.36 License: MIT -Group: Development/Libraries/Perl +Summary: Perl YAML loader and dumper URL: https://metacpan.org/release/%{cpan_name} -Source0: https://cpan.metacpan.org/authors/id/T/TO/TODDR/%{cpan_name}-%{version}.tar.gz +Source0: https://cpan.metacpan.org/authors/id/T/TO/TODDR/%{cpan_name}-%{cpan_version}.tar.gz Source1: cpanspec.yml -BuildRoot: %{_tmppath}/%{name}-%{version}-build +Source100: README.md BuildRequires: perl BuildRequires: perl-macros +Provides: perl(JSON::Syck) = %{version} +Provides: perl(YAML::Dumper::Syck) +Provides: perl(YAML::Loader::Syck) +Provides: perl(YAML::Syck) = %{version} +%undefine __perllib_provides %{perl_requires} %description @@ -42,8 +48,9 @@ backward-compatibility with 'YAML.pm'. %prep -%setup -q -n %{cpan_name}-%{version} -find . -type f ! -path "*/t/*" ! -name "*.pl" ! -path "*/bin/*" ! -path "*/script/*" ! -name "configure" -print0 | xargs -0 chmod 644 +%autosetup -n %{cpan_name}-%{cpan_version} -p1 + +find . -type f ! -path "*/t/*" ! -name "*.pl" ! -path "*/bin/*" ! -path "*/script/*" ! -path "*/scripts/*" ! -name "configure" -print0 | xargs -0 chmod 644 %build # https://github.com/cpan-authors/YAML-Syck/issues/61 @@ -59,7 +66,6 @@ %perl_gen_filelist %files -f %{name}.files -%defattr(-,root,root,755) %doc Changes COMPATIBILITY README.md %license COPYING ++++++ README.md ++++++ ## Build Results Current state of perl in openSUSE:Factory is  The current state of perl in the devel project build (devel:languages:perl)  ++++++ YAML-Syck-1.34.tar.gz -> YAML-Syck-1.36.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/YAML-Syck-1.34/Changes new/YAML-Syck-1.36/Changes --- old/YAML-Syck-1.34/Changes 2020-10-26 21:18:49.000000000 +0100 +++ new/YAML-Syck-1.36/Changes 2025-10-10 06:49:49.000000000 +0200 @@ -1,3 +1,12 @@ +1.36 Oct 10 2025 + +- Address memory corruption leading to 'str' value being set on empty keys + Thanks @timlegge + +1.35 Oct 9 2025 + +- Address parsing error related to string detection on read for empty strings. + 1.34 Oct 26 2020 - #50 Stop depending on constants dropped from Perl 5.28 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/YAML-Syck-1.34/MANIFEST new/YAML-Syck-1.36/MANIFEST --- old/YAML-Syck-1.34/MANIFEST 2020-10-26 21:19:18.000000000 +0100 +++ new/YAML-Syck-1.36/MANIFEST 2025-10-10 06:55:07.000000000 +0200 @@ -51,6 +51,7 @@ t/json-singlequote.t t/leak.t t/load-blessed.t +t/str-type-regression.t t/TestYAML.pm t/yaml-alias.t t/yaml-blessed-ref.t diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/YAML-Syck-1.34/META.json new/YAML-Syck-1.36/META.json --- old/YAML-Syck-1.34/META.json 2020-10-26 21:19:18.000000000 +0100 +++ new/YAML-Syck-1.36/META.json 2025-10-10 06:55:07.000000000 +0200 @@ -4,7 +4,7 @@ "Todd Rinaldo <[email protected]>" ], "dynamic_config" : 1, - "generated_by" : "ExtUtils::MakeMaker version 7.44, CPAN::Meta::Converter version 2.150010", + "generated_by" : "ExtUtils::MakeMaker version 7.76, CPAN::Meta::Converter version 2.150010", "license" : [ "mit" ], @@ -49,6 +49,6 @@ "url" : "http://github.com/toddr/YAML-Syck" } }, - "version" : "1.34", - "x_serialization_backend" : "JSON::PP version 4.04" + "version" : "1.36", + "x_serialization_backend" : "JSON::PP version 4.16" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/YAML-Syck-1.34/META.yml new/YAML-Syck-1.36/META.yml --- old/YAML-Syck-1.34/META.yml 2020-10-26 21:19:18.000000000 +0100 +++ new/YAML-Syck-1.36/META.yml 2025-10-10 06:55:07.000000000 +0200 @@ -7,7 +7,7 @@ configure_requires: ExtUtils::MakeMaker: '0' dynamic_config: 1 -generated_by: 'ExtUtils::MakeMaker version 7.44, CPAN::Meta::Converter version 2.150010' +generated_by: 'ExtUtils::MakeMaker version 7.76, CPAN::Meta::Converter version 2.150010' license: mit meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -24,5 +24,5 @@ homepage: http://github.com/toddr/YAML-Syck license: http://dev.perl.org/licenses/ repository: http://github.com/toddr/YAML-Syck -version: '1.34' -x_serialization_backend: 'CPAN::Meta::YAML version 0.018' +version: '1.36' +x_serialization_backend: 'CPAN::Meta::YAML version 0.020' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/YAML-Syck-1.34/lib/JSON/Syck.pm new/YAML-Syck-1.36/lib/JSON/Syck.pm --- old/YAML-Syck-1.34/lib/JSON/Syck.pm 2020-10-26 21:17:58.000000000 +0100 +++ new/YAML-Syck-1.36/lib/JSON/Syck.pm 2025-10-10 06:50:33.000000000 +0200 @@ -4,7 +4,7 @@ use Exporter; use YAML::Syck (); -our $VERSION = '1.34'; +our $VERSION = '1.36'; our @EXPORT_OK = qw( Load Dump LoadFile DumpFile DumpInto ); our @ISA = qw/Exporter/; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/YAML-Syck-1.34/lib/YAML/Syck.pm new/YAML-Syck-1.36/lib/YAML/Syck.pm --- old/YAML-Syck-1.34/lib/YAML/Syck.pm 2020-10-26 21:17:58.000000000 +0100 +++ new/YAML-Syck-1.36/lib/YAML/Syck.pm 2025-10-10 06:50:33.000000000 +0200 @@ -10,7 +10,7 @@ use Exporter; use XSLoader (); -our $VERSION = '1.34'; +our $VERSION = '1.36'; our @EXPORT = qw( Dump Load DumpFile LoadFile ); our @EXPORT_OK = qw( DumpInto ); our @ISA = qw( Exporter ); @@ -71,7 +71,7 @@ return 1 if ( ref($h) eq 'GLOB' ); return 1 if ( ref( \$h ) eq 'GLOB' ); - return 1 if ( ref($h) =~ m/^IO::/ ); + return 1 if ( index( ref($h), 'IO::' ) == 0 ); return; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/YAML-Syck-1.34/t/str-type-regression.t new/YAML-Syck-1.36/t/str-type-regression.t --- old/YAML-Syck-1.34/t/str-type-regression.t 1970-01-01 01:00:00.000000000 +0100 +++ new/YAML-Syck-1.36/t/str-type-regression.t 2025-10-09 23:46:16.000000000 +0200 @@ -0,0 +1,72 @@ +#!/usr/bin/perl +use strict; +use warnings; + +use Test::More; +use YAML::Syck; +use File::Temp qw(tempfile); + +# This test verifies a bug fix where nodes with type_id "str" and empty values +# would sometimes have their value set to the literal string "str" instead of +# the actual empty string value from the YAML file. +# +# The bug was intermittent and more likely to occur with: +# 1. Large files with many keys (5000+ keys) +# 2. Keys with realistic lengths (15-200 bytes) matching locale strings +# 3. Keys with special characters, punctuation, quotes, brackets +# 4. Repeated loading from disk (memory reuse patterns) + +# Create realistic test data matching the patterns that trigger the bug +# Based on actual locale message keys that exposed the issue +my @key_templates = ( + '"Message [_1] - [_2] characters"', + '"Warning: [_1] does not refer to a valid email account."', + '"Failed to get a valid result from [output,class,securityadmin,code] while requesting [output,class,SETDIGESTAUTH,code]."', + '"The system will use the signed certificate for the hostname, on the [_1] service."', + '"Enter additional notes about the file system. You can view these notes in the list of mounted filesystems."', + '"Note: By selecting Daily backup option, you will receive Monthly and Weekly as well."', + '"This setting requires a separate drive or other mount point."', + '"Would you like to secure the following additional [numerate,_2,domain,domains] with this certificate? [list_and_quoted,_1]"', + '"Failed to get the current table auto-increment values while patching table auto-increment values in the pristine 11.48 horde database with errors: [_1]"', + '"A Known Network is an [output,abbr,IP,Internet Protocol] address range or netblock that contains an [output,abbr,IP,Internet Protocol] address."', +); + +my $yaml_content = "---\n"; +for my $i ( 1 .. 18720 ) { + my $template = $key_templates[ $i % scalar(@key_templates) ]; + my $key = $template; + $key =~ s/\[_\d+\]/item_$i/g; # Replace placeholders with unique values + $yaml_content .= "$key: ''\n"; +} + +# Write to a temporary file - LoadFile triggers the bug more reliably than Load +my ( $fh, $filename ) = tempfile( SUFFIX => '.yaml', UNLINK => 1 ); +print $fh $yaml_content; +close $fh; + +my $failed = 0; +my $iterations = 500; # Run many times to catch the intermittent bug + +for my $attempt ( 1 .. $iterations ) { + my $data = LoadFile($filename); + + # Check that all values are empty strings, not the literal "str" + for my $key ( keys %$data ) { + if ( $data->{$key} eq 'str' ) { + fail("FAIL at iteration $attempt: key '$key' has value 'str' instead of empty string"); + $failed++; + last; + } + elsif ( $data->{$key} ne '' ) { + fail("FAIL at iteration $attempt: key '$key' has unexpected value: '$data->{$key}'"); + $failed++; + last; + } + } + + last if $failed; +} + +ok( !$failed, "All empty string values remain empty strings across $iterations iterations" ); + +done_testing(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/YAML-Syck-1.34/token.c new/YAML-Syck-1.36/token.c --- old/YAML-Syck-1.34/token.c 2018-10-25 21:20:12.000000000 +0200 +++ new/YAML-Syck-1.36/token.c 2025-10-10 06:48:53.000000000 +0200 @@ -1552,6 +1552,7 @@ int qidx = 0; int qcapa = 100; char *qstr = S_ALLOC_N( char, qcapa ); + qstr[0] = '\0'; SyckLevel *plvl; int parentIndent; @@ -1804,6 +1805,7 @@ int qidx = 0; int qcapa = 100; char *qstr = S_ALLOC_N( char, qcapa ); + qstr[0] = '\0'; SingleQuote2: YYTOKEN = YYCURSOR; @@ -1962,6 +1964,7 @@ int qidx = 0; int qcapa = 100; char *qstr = S_ALLOC_N( char, qcapa ); + qstr[0] = '\0'; DoubleQuote2: YYTOKEN = YYCURSOR; @@ -2232,6 +2235,7 @@ int qidx = 0; int qcapa = 100; char *qstr = S_ALLOC_N( char, qcapa ); + qstr[0] = '\0'; TransferMethod2: YYTOKTMP = YYCURSOR; @@ -2450,6 +2454,7 @@ SyckLevel *lvl = CURRENT_LEVEL(); int parentIndent = -1; + qstr[0] = '\0'; switch ( *yyt ) { case '|': blockType = BLOCK_LIT; break; @@ -2472,7 +2477,6 @@ } } - qstr[0] = '\0'; YYTOKEN = YYCURSOR; ScalarBlock2: ++++++ _scmsync.obsinfo ++++++ mtime: 1760444839 commit: b704f10a70923d690344a7fd10cfb748e1bfd03b389461fed684b88ea925b4c7 url: https://src.opensuse.org/perl/perl-YAML-Syck.git revision: b704f10a70923d690344a7fd10cfb748e1bfd03b389461fed684b88ea925b4c7 projectscmsync: https://src.opensuse.org/perl/_ObsPrj ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2025-10-14 16:20:20.000000000 +0200 @@ -0,0 +1 @@ +.osc
