Discussion:
[Encode] 3.12 Released, update NOW to address CVE-2021-36770
(too old to reply)
Dan Kogai
2021-08-09 14:35:49 UTC
Permalink
Porters,

Encode 3.12 is released to address the issue below which is a SECURITY FIX. UPDATE NOW.
Porters,
dinah:~/tmp$ perl -MEncode -e0
4
dinah:~/tmp$ mkdir -p 4/Encode
dinah:~/tmp$ echo 'print "Something evil here!!\n"' > 4/Encode/ConfigLocal.pm
dinah:~/tmp$ perl -MEncode -e0
Something evil here!!
A new release of Encode should be available from the CPAN today, and will be swiftly integrated into perl5.git. I expect this fix will shortly be available from major distributors of perl. In the meantime, I have applied a patch to the repository.
This bug was reported to perlsec on June 26 by Dom Hargreaves on behalf of Debian, passing on a report from Paul Wise.
--
rjbs
<0001-mitigate-INC-pollution-when-loading-ConfigLocal.patch>
head1 Availability

* git clone git://github.com/dankogai/p5-encode.git
* https://www.dan.co.jp/~dankogai/cpan/Encode-3.12.tar.gz
* CPAN near you.

Travis is all green.

* https://travis-ci.org/dankogai/p5-encode

=head1 CPAN index

User: DANKOGAI ()
Distribution file: Encode-3.12.tar.gz
Number of files: 225
*.pm files: 26
README: Encode-3.12/README
META-File: Encode-3.12/META.json
META-Parser: Parse::CPAN::Meta 1.4414
META-driven index: no
Timestamp of file: Mon Aug 9 14:30:33 2021 UTC
Time of this run: Mon Aug 9 14:33:28 2021 UTC

=head1 Changes

$Revision: 3.12 $ $Date: 2021/08/09 14:17:04 $
! Encode.pm
Address CVE-2021-36770
<9639159a-d070-4762-9cbd-***@beta.fastmail.com>

=head1 AUTHOR

Dan the Encode Maintainer
Achim Gratz
2021-08-09 21:03:11 UTC
Permalink
diff --git a/Encode.pm b/Encode.pm
index a56a999..9691382 100644
--- a/Encode.pm
+++ b/Encode.pm
@@ -65,8 +65,8 @@ require Encode::Config;
eval {
local $SIG{__DIE__};
local $SIG{__WARN__};
require Encode::ConfigLocal;
};
Hmm, the original change in 3.05 looks… planted; and since Encode.pm is
XS-ed it gets baked in pretty hard. Since that change precludes any
attempt to use Encode::ConfigLocal as intended, this also shows that the
distribution is missing a test for this functionality and that
practically nobody is using it or it should have been caught much
earlier. :-(

Going back to CVE-2016-1238, why is "." in @INC only removed when it's
at the end (which used to be where it was by default)? Shouldn't it be
sanitized regardless of position, or even more generally any
world-writable components of @INC?


Regards,
Achim.
--
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Wavetables for the Waldorf Blofeld:
http://Synth.Stromeko.net/Downloads.html#BlofeldUserWavetables
ASSI
2021-08-10 05:25:12 UTC
Permalink
It's quite different to account for the default behavior of Perl up
may have a good reason (and if you want to protect against that, you
The attack vector doesn't depend on the path being relative.

Looking at enc2xs, I'm wondering if the search path could / should be
restricted to $INC{"Encode.pm"}, which would be safe by default and
explicitly set up to differ from the default by the user otherwise.
While it's possible to put a generated ConfigLocal someplace else after
the fact with the current implementation, enc2xs doesn't seem to support
that scenario consciously.


Regards,
Achim.
--
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Factory and User Sound Singles for Waldorf Blofeld:
http://Synth.Stromeko.net/Downloads.html#WaldorfSounds
Achim Gratz
2021-08-14 08:15:31 UTC
Permalink
I have attached a fix for a bug in Encode, registered as
predictable integer, which is treated as a directory relative to the
current working directory, long enough to execute one "require".
I've decided to put a different fix in Cygwin's Perl:

--8<---------------cut here---------------start------------->8---
--- origsrc/perl-5.32.1/cpan/Encode/Encode.pm
+++ src/perl-5.32.1/cpan/Encode/Encode.pm
@@ -65,8 +65,7 @@
eval {
local $SIG{__DIE__};
local $SIG{__WARN__};
- local @INC = @INC || ();
- pop @INC if $INC[-1] eq '.';
+ local @INC = ( substr( $INC{"Encode.pm"}, 0, -length( "/Encode.pm" )) ); # where enc2xs would have installed it
require Encode::ConfigLocal;
};


--8<---------------cut here---------------end--------------->8---

If Encode.pm already got loaded from an unsafe directory this isn't
making anything worse than it already is, otherwise this prevents any
shenanigans with @INC, intended or not.


Regards,
Achim.
--
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

SD adaptation for Waldorf rackAttack V1.04R1:
http://Synth.Stromeko.net/Downloads.html#WaldorfSDada
Dan Kogai
2021-10-06 01:02:26 UTC
Permalink
Porters,

Just updated Encode to 3.13 To address RT#139622.

https://rt.cpan.org/Ticket/Display.html?id=139622

It fixes the memory leak when you set FB_CROAK. Usually that is not a problem because perl dies immediately after the error occurs but that is not the case when you wrap it in eval {}.

=head1 Availability

* git clone git://github.com/dankogai/p5-encode.git
* https://www.dan.co.jp/~dankogai/cpan/Encode-3.13.tar.gz
* CPAN near you.

Travis is all green.

* https://travis-ci.org/dankogai/p5-encode

=head1 CPAN index

User: DANKOGAI ()
Distribution file: Encode-3.13.tar.gz
Number of files: 225
*.pm files: 26
README: Encode-3.13/README
META-File: Encode-3.13/META.json
META-Parser: Parse::CPAN::Meta 1.4414
META-driven index: no
Timestamp of file: Wed Oct 6 00:57:50 2021 UTC
Time of this run: Wed Oct 6 01:00:49 2021 UTC

=head1 Changes

$Revision: 3.13 $ $Date: 2021/10/05 23:48:27 $
! Encode.xs
Apply the patch of RT#139622 to fix a memory leak on FB_CROAK
https://rt.cpan.org/Ticket/Display.html?id=139622

=head1 AUTHOR

Dan the Encode Maintainer
Dan Kogai
2021-10-08 00:48:50 UTC
Permalink
Porters,

Just updated Encode to 3.14.

https://github.com/dankogai/p5-encode/pull/161
Pull request #72 fixed memory
corruption but introduced a new memory leak as dst scalar is not mortal
anymore and not every possible exit from every XS function properly release
scalar's memory.
Fix this memory leak by making dst scalar mortal again. To not re-introduce
that memory corruption, first store dst scalar into temporary variable and
then save it into stack via ST(0) macro.
=head1 Availability

* git clone git://github.com/dankogai/p5-encode.git
* https://www.dan.co.jp/~dankogai/cpan/Encode-3.14.tar.gz
* CPAN near you.

Travis is all green.

* https://app.travis-ci.com/github/dankogai/p5-encode

=head1 CPAN index

User: DANKOGAI ()
Distribution file: Encode-3.14.tar.gz
Number of files: 225
*.pm files: 26
README: Encode-3.14/README
META-File: Encode-3.14/META.json
META-Parser: Parse::CPAN::Meta 1.4414
META-driven index: no
Timestamp of file: Fri Oct 8 00:35:29 2021 UTC
Time of this run: Fri Oct 8 00:38:31 2021 UTC

=head1 Changes

$Revision: 3.14 $ $Date: 2021/10/08 00:30:35 $
! Encode.xs
Pulled: Fix memory leak in function encode_method()
https://github.com/dankogai/p5-encode/pull/161

=head1 AUTHOR

Dan the Encode Maintainer
Eric Wong
2021-10-08 09:16:48 UTC
Permalink
Post by Dan Kogai
Porters,
Just updated Encode to 3.14.
https://github.com/dankogai/p5-encode/pull/161
Hi Dan, it looks like you missed Pali's note about reverting
commit 2397881 (resolve RT#139622).

Pali's change is more complete than 2397881. With 3.14,
the leak test included with RT#139622 hits SIGSEGV:
https://rt.cpan.org/Ticket/Display.html?id=139622

Thanks.
Dan Kogai
2021-10-08 15:50:53 UTC
Permalink
Porters,

My apology for releasing 3.14 prematurely and releasing 3.15 to resolve it. In a way, this is what Encode 3.13 was supposed to be.
Post by Eric Wong
Hi Dan, it looks like you missed Pali's note about reverting
commit 2397881 (resolve RT#139622).
Pali's change is more complete than 2397881. With 3.14,
https://rt.cpan.org/Ticket/Display.html?id=139622
* 3.13 partially fixed the memory leak on FB_CROAK
* Just a single SvREFCNT_dec() added in Encode.xs
* pali submitted a more complete fix in pull #161 but the pr was against 3.12. The previous fix should be reverted beforehand but was not.
* causing the SEGV by unnecessary SvREFCNT_dec()
* 3.15 is here to fix it

=head1 Availability

* git clone git://github.com/dankogai/p5-encode.git
* https://www.dan.co.jp/~dankogai/cpan/Encode-3.15.tar.gz
* CPAN near you.

Travis is all green.

* https://app.travis-ci.com/github/dankogai/p5-encode

=head1 CPAN index

User: DANKOGAI ()
Distribution file: Encode-3.15.tar.gz
Number of files: 225
*.pm files: 26
README: Encode-3.15/README
META-File: Encode-3.15/META.json
META-Parser: Parse::CPAN::Meta 1.4414
META-driven index: no
Timestamp of file: Fri Oct 8 15:45:44 2021 UTC
Time of this run: Fri Oct 8 15:48:45 2021 UTC

=head1 Changes

$Revision: 3.15 $ $Date: 2021/10/08 15:29:23 $
! Encode.xs
Revert Encode 3.13 (commit 2397881) which should have been done w/ pull 161
<***@dcvr>
https://github.com/dankogai/p5-encode/commit/23978817a2c1ed13861167154e8eb3d829104b6b
https://github.com/dankogai/p5-encode/pull/161

3.14 2021/10/08 00:30:35
! Encode.xs
Pulled: Fix memory leak in function encode_method()
https://github.com/dankogai/p5-encode/pull/161

3.13 2021/10/05 23:48:27
! Encode.xs
Apply the patch of RT#139622 to fix a memory leak on FB_CROAK
https://rt.cpan.org/Ticket/Display.html?id=139622

=head1 AUTHOR

Dan the Encode Maintainer
James E Keenan
2021-10-10 20:52:13 UTC
Permalink
Post by Dan Kogai
Porters,
My apology for releasing 3.14 prematurely and releasing 3.15 to resolve it. In a way, this is what Encode 3.13 was supposed to be.
Dan, just now I synched Encode 3.15 into blead ( cf927cc ). Can you
double check that this distribution now appears in blead as it should be
for our next development release on October 20 2021?

Thank you very much.
Jim Keenan
Eric Wong
2021-10-11 20:43:09 UTC
Permalink
Post by Dan Kogai
Porters,
My apology for releasing 3.14 prematurely and releasing 3.15 to resolve it. In a way, this is what Encode 3.13 was supposed to be.
Dan, just now I synched Encode 3.15 into blead ( cf927cc ). Can you double
check that this distribution now appears in blead as it should be for our
next development release on October 20 2021?
I'm not Dan, but Encode.xs being blob 3416df70fa9fd640 looks right to me :>

Does anybody here have suggestions on how to go about adding
leak tests to packages like Encode?

I see XS::APItest exists and exposes PL_sv_count; but I guess
it's only for Perl internals and not for stuff imported from CPAN?

It'd be nice to have regression testing guard against
introducing leaks for other core modules, too. Thanks.
Paul "LeoNerd" Evans
2021-10-11 20:54:24 UTC
Permalink
On Mon, 11 Oct 2021 20:43:09 +0000
Post by Eric Wong
Does anybody here have suggestions on how to go about adding
leak tests to packages like Encode?
I usually use Test::Refcount.

(Disclaimer: I wrote it)

It asserts that the refcount of a thing is what the test script claims
it to be (often 1). If it fails, it writes a heapdump file you can
analyse using Devel::MAT.

(Disclaimer: I wrote that too)
--
Paul "LeoNerd" Evans

***@leonerd.org.uk | https://metacpan.org/author/PEVANS
http://www.leonerd.org.uk/ | https://www.tindie.com/stores/leonerd/
Eric Wong
2021-10-12 00:42:16 UTC
Permalink
Post by Paul "LeoNerd" Evans
On Mon, 11 Oct 2021 20:43:09 +0000
Post by Eric Wong
Does anybody here have suggestions on how to go about adding
leak tests to packages like Encode?
I usually use Test::Refcount.
Thanks for the response, but can that check for allocations made
(and lost) from inside XS?

The leaks which got fixed in Encode was created by newSV() and
the SV not being mortalized; so it got lost on croak and AFAIK
that can't be tested by pure Perl. Something like valgrind
could notice that leak, as would (AFAIK) PL_sv_count.

Adding valgrind to a test suite seems heavy-handed; so I wonder
if XS::APITests::sv_count should be moved to Devel::Peek or
similar.
H.Merijn Brand
2021-10-12 06:58:17 UTC
Permalink
Post by Eric Wong
Post by Paul "LeoNerd" Evans
On Mon, 11 Oct 2021 20:43:09 +0000
Post by Eric Wong
Does anybody here have suggestions on how to go about adding
leak tests to packages like Encode?
I usually use Test::Refcount.
Thanks for the response, but can that check for allocations made
(and lost) from inside XS?
The leaks which got fixed in Encode was created by newSV() and
the SV not being mortalized; so it got lost on croak and AFAIK
that can't be tested by pure Perl. Something like valgrind
could notice that leak, as would (AFAIK) PL_sv_count.
Adding valgrind to a test suite seems heavy-handed; so I wonder
if XS::APITests::sv_count should be moved to Devel::Peek or
similar.
For my XS modules I use

--8<---
export PERL_DESTRUCT_LEVEL=2 PERL_DL_NONLAZY=1

valgrind \
--suppressions=sandbox/perl.supp \
--leak-check=yes \
--leak-resolution=high \
--show-reachable=yes \
--num-callers=50 \
--log-fd=3 \
perl \
-MPerl::Destruct::Level=level,2 \
"$@" \
3>valgrind.log
-->8---

Where sandbox/perl.supp is a symlink to .../bleadperl/t/perl.supp

Another approach would be

--8<---
export PERL_DESTRUCT_LEVEL=2 PERL_DL_NONLAZY=1

prove --exec "perl -Iblib/lib -Iblib/arch -MTest::Valgrind" $@
-->8---

And a third might be
--8<---
perl -MTest::LeakTrace::Script=-verbose t/foo.t
-->8---
--
H.Merijn Brand https://tux.nl Perl Monger http://amsterdam.pm.org/
using perl5.00307 .. 5.33 porting perl5 on HP-UX, AIX, and Linux
https://tux.nl/email.html http://qa.perl.org https://www.test-smoke.org
Felipe Gasper
2021-10-11 23:00:59 UTC
Permalink
On a much simpler level, I often make modules warn if they DESTROY at global destruct time and the PID hasn’t changed. Destruct-time DESTROY doesn’t always mean a leak, but it’s easy to clean up the non-leak uses at END time instead.

-F
Post by Eric Wong
Post by Dan Kogai
Porters,
My apology for releasing 3.14 prematurely and releasing 3.15 to resolve it. In a way, this is what Encode 3.13 was supposed to be.
Dan, just now I synched Encode 3.15 into blead ( cf927cc ). Can you double
check that this distribution now appears in blead as it should be for our
next development release on October 20 2021?
I'm not Dan, but Encode.xs being blob 3416df70fa9fd640 looks right to me :>
Does anybody here have suggestions on how to go about adding
leak tests to packages like Encode?
I see XS::APItest exists and exposes PL_sv_count; but I guess
it's only for Perl internals and not for stuff imported from CPAN?
It'd be nice to have regression testing guard against
introducing leaks for other core modules, too. Thanks.
Dan Kogai
2021-10-13 08:46:45 UTC
Permalink
Porters,

Just released Encode 3.16, which is identical to 3.15 except for Makefile.PL which fixes compile error on Perl v5.35.5 (or later).

https://github.com/dankogai/p5-encode/pull/162

=head1 Availability

* git clone git://github.com/dankogai/p5-encode.git
* https://www.dan.co.jp/~dankogai/cpan/Encode-3.16.tar.gz
* CPAN near you.

Travis is all green.

* https://app.travis-ci.com/github/dankogai/p5-encode

=head1 CPAN index

User: DANKOGAI ()
Distribution file: Encode-3.16.tar.gz
Number of files: 225
*.pm files: 26
README: Encode-3.16/README
META-File: Encode-3.16/META.json
META-Parser: Parse::CPAN::Meta 1.4414
META-driven index: no
Timestamp of file: Wed Oct 13 08:39:09 2021 UTC
Time of this run: Wed Oct 13 08:42:10 2021 UTC

=head1 Changes

$Revision: 3.16 $ $Date: 2021/10/13 08:29:13 $
! Makefile.PL
Pulled: Only add -Werror=declaration-after-statement for 5.035004 and earlier
https://github.com/dankogai/p5-encode/pull/162

=head1 AUTHOR

Dan the Encode Maintainer
Dan Kogai
2022-04-07 03:25:51 UTC
Permalink
Porters,

Just released Encode 3.17, Functionally it is identical to the previous version. Since the pull #168 fixes the issue #144 of Perl main, Encode version is also incremented.

=head1 Availability

* git clone git://github.com/dankogai/p5-encode.git
* https://www.dan.co.jp/~dankogai/cpan/Encode-3.17.tar.gz
* CPAN near you.

Travis is all green.

* https://app.travis-ci.com/github/dankogai/p5-encode

=head1 CPAN index

User: DANKOGAI ()
Distribution file: Encode-3.17.tar.gz
Number of files: 226
*.pm files: 26
README: Encode-3.17/README
META-File: Encode-3.17/META.json
META-Parser: Parse::CPAN::Meta 1.4414
META-driven index: no
Timestamp of file: Thu Apr 7 03:18:23 2022 UTC
Time of this run: Thu Apr 7 03:21:28 2022 UTC

=head1 Changes

$Revision: 3.17 $ $Date: 2022/04/07 03:06:40 $
! bin/enc2xs t/enc_data.t t/enc_module.t t/encoding.t t/jperl.t
Pulled: Fix Issue #144, spurious warnings from -Wc++-compate,
and a few related nits
https://github.com/dankogai/p5-encode/pull/168
! MANIFEST
add t/utf32warnings.t which was missing
! t/taint.t
Pulled: Skip taint tests if your perl was built without taint support
https://github.com/dankogai/p5-encode/pull/167
! Unicode/Unicode.pm
Pulled: fix link to Unicode standard
https://github.com/dankogai/p5-encode/pull/165
! t/Unicode_trailing_nul.t
Pulled: Use note() instead of diag()
https://github.com/dankogai/p5-encode/pull/164

=head1 AUTHOR

Dan the Encode Maintainer
Dan Kogai
2022-06-25 02:35:43 UTC
Permalink
Porters,

Just released Encode 3.18. It fixes the issue of Encode::MIME::Header when it contains improperly padded base64 words.

https://github.com/dankogai/p5-encode/commit/6513c0a54e5b02fbbd0c2f6096b03ea441438dc4
In default non-strict mode Encode::MIME::Header concatenate all consecutive
base64 words into one long string and then it decodes. Decoding of this
long string would return garbage if some base64 word is not properly padded
with '=' characters to length divisible by 4.
Fix this issue by first padding every base64 word to length multiplied by 4
by adding '=' padding characters in non-strict mode and after that do that
concatenation.
CI is also switched from Travis to Github Actions. Thanks to that it is now tested on macOS and Windows in addition to Linux.

=head1 Availability

* git clone git://github.com/dankogai/p5-encode.git
* https://www.dan.co.jp/~dankogai/cpan/Encode-3.18.tar.gz
* CPAN near you.

CI is all green.

* https://github.com/dankogai/p5-encode/actions/workflows/platforms.yml
* https://github.com/dankogai/p5-encode/actions/workflows/versions.yml

=head1 CPAN index

User: DANKOGAI ()
Distribution file: Encode-3.18.tar.gz
Number of files: 226
*.pm files: 26
README: Encode-3.18/README
META-File: Encode-3.18/META.json
META-Parser: Parse::CPAN::Meta 1.4414
META-driven index: no
Timestamp of file: Sat Jun 25 02:14:35 2022 UTC
Time of this run: Sat Jun 25 02:17:39 2022 UTC

=head1 Changes

$Revision: 3.18 $ $Date: 2022/06/25 02:05:01 $
! lib/Encode/MIME/Header.pm t/mime-header.t
Pulled: Encode::MIME::Header: Fix base64 word decoding
https://github.com/dankogai/p5-encode/pull/169
! t/Unicode_trailing_nul.t t/truncated_utf8.t
t/utf32warnings.t t/xml.t
Skip so Github Actions are happy
https://github.com/dankogai/p5-encode/blob/main/.github/workflows/versions.yml

=head1 AUTHOR

Dan the Encode Maintainer
Dan Kogai
2022-08-04 05:02:40 UTC
Permalink
Porters,

Just released Encode 3.19. The only change from the previous version is one alias, ISO-8859-8-I (to ISO-8859-8). According to jhi, the missing of it was "inconceivable".

cf. https://en.wikipedia.org/wiki/ISO-8859-8-I

=head1 Availability

* git clone git://github.com/dankogai/p5-encode.git
* https://www.dan.co.jp/~dankogai/cpan/Encode-3.19.tar.gz
* CPAN near you.

CI is all green.

* https://github.com/dankogai/p5-encode/actions/workflows/platforms.yml
* https://github.com/dankogai/p5-encode/actions/workflows/versions.yml

=head1 CPAN index

User: DANKOGAI ()
Distribution file: Encode-3.19.tar.gz
Number of files: 226
*.pm files: 26
README: Encode-3.19/README
META-File: Encode-3.19/META.json
META-Parser: Parse::CPAN::Meta 1.4414
META-driven index: no
Timestamp of file: Thu Aug 4 04:51:01 2022 UTC
Time of this run: Thu Aug 4 04:54:06 2022 UTC

=head1 Changes

$Revision: 3.19 $ $Date: 2022/08/04 04:43:23 $
! lib/Encode/Alias.pm /t/Aliases.t
Add ISO-8859-8-I as an alias of ISO-8859-8
<8ac3918e-5d77-4815-f1e6-***@iki.fi>
https://en.wikipedia.org/wiki/ISO-8859-8-I

=head1 AUTHOR

Dan the Encode Maintainer
James E Keenan
2022-08-04 13:21:32 UTC
Permalink
Post by Dan Kogai
Porters,
Just released Encode 3.19. The only change from the previous version is one alias, ISO-8859-8-I (to ISO-8859-8). According to jhi, the missing of it was "inconceivable".
cf. https://en.wikipedia.org/wiki/ISO-8859-8-I
Thanks, Dan; synched into blead at commit 3aee5eac67
Dan Kogai
2023-11-10 01:45:13 UTC
Permalink
Porters,

Just released Encode 3.20. It is functionally identical to 3.19 but all occurrences of `import Config` are replaced with `Config->import()` since it is an indirect object syntax which is disabled in Perl 5.36 and on.

https://perldoc.perl.org/perlobj#Indirect-Object-Syntax

Though it does not affect existing perl scripts and modules including Encode unless it `use v5.36`, it is good to make it future-proof and compliant with the current Perl syntax.

=head1 Availability

* git clone git://github.com/dankogai/p5-encode.git
* https://www.dan.co.jp/~dankogai/cpan/Encode-3.20.tar.gz
* CPAN near you.

CI is all green.

* https://github.com/dankogai/p5-encode/actions/workflows/platforms.yml
* https://github.com/dankogai/p5-encode/actions/workflows/strawberry.yml
* https://github.com/dankogai/p5-encode/actions/workflows/versions.yml

=head1 CPAN index

User: DANKOGAI ()
Distribution file: Encode-3.20.tar.gz
Number of files: 226
*.pm files: 26
README: Encode-3.20/README
META-File: Encode-3.20/META.json
META-Parser: Parse::CPAN::Meta 1.4414
META-driven index: no
Timestamp of file: Fri Nov 10 01:26:15 2023 UTC
Time of this run: Fri Nov 10 01:28:36 2023 UTC

=head1 Changes

Revision: 3.20 $ $Date: 2023/11/10 01:10:50 $
! t/Aliases.t t/CJKT.t t/Encode.t t/Encoder.t t/Unicode.t t/at-cn.t
t/at-tw.t t/enc_data.t t/enc_eucjp.t t/enc_module.t t/enc_utf8.t
t/encoding.t t/fallback.t t/grow.t t/gsm0338.t t/guess.t t/jperl.t
t/magic.t t/mime-header.t t/mime-name.t t/perlio.t t/rt113164.t
t/rt65541.t t/rt76824.t t/rt85489.t t/rt86327.t t/truncated_utf8.t
t/utf8strict.t t/rt.pl
Fix indirect syntax accordingly to (but not by pulling):
https://github.com/dankogai/p5-encode/pull/176
! bin/enc2xs
Pulled: enc2xs: Fix indirect syntax
https://github.com/dankogai/p5-encode/pull/174
! bin/encguess
Pulled: encguess: remove duplicate "the"
https://github.com/dankogai/p5-encode/pull/173
! bin/enc2xs
Pulled: Fix spelling in comment
https://github.com/dankogai/p5-encode/pull/171
! t/gsm0338.t
Pulled: fix gsm0338 test compatibility with perl < 5.8.8
https://github.com/dankogai/p5-encode/pull/170


=head1 AUTHOR

Dan the Encode Maintainer
Dan Kogai via perl5-porters
2024-02-25 23:26:28 UTC
Permalink
Porters,

Just released Encode 3.21. Just document and test fixes. VERSION++'ed so bleadperl is happy with parallel testing.

https://rt.cpan.org/Ticket/Display.html?id=151983

=head1 Availability

* git clone git://github.com/dankogai/p5-encode.git
* https://www.dan.co.jp/~dankogai/cpan/Encode-3.21.tar.gz
* CPAN near you.

CI is all green.

* https://github.com/dankogai/p5-encode/actions/workflows/platforms.yml
* https://github.com/dankogai/p5-encode/actions/workflows/strawberry.yml
* https://github.com/dankogai/p5-encode/actions/workflows/versions.yml

=head1 CPAN index

User: DANKOGAI ()
Distribution file: Encode-3.21.tar.gz
Number of files: 226
*.pm files: 26
README: Encode-3.21/README
META-File: Encode-3.21/META.json
META-Parser: Parse::CPAN::Meta 1.4414
META-driven index: no
Timestamp of file: Sun Feb 25 23:19:43 2024 UTC
Time of this run: Sun Feb 25 23:22:04 2024 UTC

=head1 Changes

$Revision: 3.21 $ $Date: 2024/02/25 22:21:59 $
! t/CJKT.t
address RT#151983: parallel test race condition
https://rt.cpan.org/Ticket/Display.html?id=151983
! Encode.pm
pulled: remove POD markup from verbatim sections
https://github.com/dankogai/p5-encode/pull/178
! lib/Encode/Supported.pod
pulled: fix module name in POD
https://github.com/dankogai/p5-encode/pull/177

=head1 AUTHOR

Dan the Encode Maintainer

Loading...