Branch: refs/heads/smoke-me/khw-safe
  Home:   https://github.com/Perl/perl5
  Commit: 1c5fc034b583b87fd58ee385a8db71234bba6442
      
https://github.com/Perl/perl5/commit/1c5fc034b583b87fd58ee385a8db71234bba6442
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Move some statements

So they are closer to related statements


  Commit: d5b44c4d92a319d3b56b1485adde650e857f1206
      
https://github.com/Perl/perl5/commit/d5b44c4d92a319d3b56b1485adde650e857f1206
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  XXX finish msg Implement combo ENV/LOCALE mutexes

There are cases where an executing function is vulnerable to either the
locale or environment being changed by another thread.  This implements
macros that use mutexes to protect these critical sections.  There are
two cases that exist:  one where the functions only read; and one where
they can also need exclusive control so that a competing thread can't
overwrite the returned static buffer before it is safely copied.

5.32 had a placeholder for these, but didn't actually implement it.
Instead it locked just the ENV portion.  On modern platforms with
thread-safe locales, the locale portion is a no-op anyway, so things
worked on them.

This new commit extends that safety to other platforms.  This has long
been a vulnerability in Perl, but


  Commit: 4c420020a6083f52273098a628371fddb41f4f9e
      
https://github.com/Perl/perl5/commit/4c420020a6083f52273098a628371fddb41f4f9e
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M cygwin/cygwin.c
    M dist/IO/IO.pm
    M embed.fnc
    M embed.h
    M embedvar.h
    M ext/I18N-Langinfo/Langinfo.pm
    M ext/I18N-Langinfo/Langinfo.xs
    M ext/POSIX/POSIX.xs
    M ext/POSIX/lib/POSIX.pm
    M ext/POSIX/lib/POSIX.pod
    M ext/POSIX/t/mb.t
    M handy.h
    M inline.h
    M intrpvar.h
    M iperlsys.h
    M lib/locale_threads.t
    M locale.c
    M makedef.pl
    M perl.c
    M perl.h
    M pod/perllocale.pod
    M proto.h
    M regen/reentr.pl
    M regexec.c
    M sv.c
    M t/harness
    M t/loc_tools.pl
    M t/porting/known_pod_issues.dat
    M t/re/charset.t
    M thread.h
    M unixish.h
    M util.c

  Log Message:
  -----------
  STRFTIME


  Commit: fe1133979e4ae08cf057daf9268aca3a09827699
      
https://github.com/Perl/perl5/commit/fe1133979e4ae08cf057daf9268aca3a09827699
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Refactor #ifdef's for clarity

The my_strerror() function has effectively 5 different implementations
depending on the capabilities of the platform.  Only a few lines are
common to all, the set-up and the return.  The #ifdefs obscure the
underlying logic.  So this commit separates them out into 5 different
functions, with the result that it's clear what is going on in each.


  Commit: 905d78fbf4e98d062a7c539bb702de7a08bfa097
      
https://github.com/Perl/perl5/commit/905d78fbf4e98d062a7c539bb702de7a08bfa097
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M locale.c
    M mg.c

  Log Message:
  -----------
  more strerror mg.c


  Commit: de93b4d29dd7267538bcc79f1dc76c47d1e68453
      
https://github.com/Perl/perl5/commit/de93b4d29dd7267538bcc79f1dc76c47d1e68453
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  XXX prob drop; done before anything so no races


  Commit: d92ece1134b29d5fe4676a8cc456591e328fe37e
      
https://github.com/Perl/perl5/commit/d92ece1134b29d5fe4676a8cc456591e328fe37e
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M util.c

  Log Message:
  -----------
  XXX util.c: LOCALTIME lock


  Commit: 63cb5a0ee53dbf9801cdfba98d519dc97e5683d9
      
https://github.com/Perl/perl5/commit/63cb5a0ee53dbf9801cdfba98d519dc97e5683d9
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M time64.c

  Log Message:
  -----------
  time64.c: Remove no longer needed code

This code defined some macros; those are now defined by perl.h


  Commit: 9c71e12fa5e23c201eae7a131f36f8d9cbbfa043
      
https://github.com/Perl/perl5/commit/9c71e12fa5e23c201eae7a131f36f8d9cbbfa043
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M pp_sys.c

  Log Message:
  -----------
  XXX need to StructCopy pp_sys mutexes


  Commit: 90d2fbffa28d834285a2bca13bf6925b3091990b
      
https://github.com/Perl/perl5/commit/90d2fbffa28d834285a2bca13bf6925b3091990b
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M win32/win32.c

  Log Message:
  -----------
  win32.c: Add mutexes around some calls

These could have races.


  Commit: 80d5fac5870b6f7fe51fc6bc49241583ded5c70f
      
https://github.com/Perl/perl5/commit/80d5fac5870b6f7fe51fc6bc49241583ded5c70f
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M win32/win32.c

  Log Message:
  -----------
  more_win32.c


  Commit: 762c5d53235317a9ffef3ea3780efc005607df37
      
https://github.com/Perl/perl5/commit/762c5d53235317a9ffef3ea3780efc005607df37
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M util.c

  Log Message:
  -----------
  mktime needs to run under a mutex

per the Posix standard


  Commit: 7e5392a4c351ff68d0596fc034097f0eb2b4aaa0
      
https://github.com/Perl/perl5/commit/7e5392a4c351ff68d0596fc034097f0eb2b4aaa0
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/perlxs.pod

  Log Message:
  -----------
  XXX perlxs


  Commit: f26d6ff4f2d2fcc5f8854fd56ecfc2b74606e256
      
https://github.com/Perl/perl5/commit/f26d6ff4f2d2fcc5f8854fd56ecfc2b74606e256
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M dist/ExtUtils-ParseXS/lib/perlxs.pod

  Log Message:
  -----------
  more perlxs


  Commit: cb871769b83d772390a0972fd51c9a26e5f61a71
      
https://github.com/Perl/perl5/commit/cb871769b83d772390a0972fd51c9a26e5f61a71
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M os2/os2.c

  Log Message:
  -----------
  os2: Use many reader lock instead of exclusive

This is just reading the environment, not changing it, so a many readers
can be accessing it at the same time.


  Commit: f7a22154dce2644c87da803a0a5f814be1d806a1
      
https://github.com/Perl/perl5/commit/f7a22154dce2644c87da803a0a5f814be1d806a1
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M dosish.h
    M unixish.h

  Log Message:
  -----------
  XXX Fix IO destruction order

During destruction, a list is executed in order.  Here's a couple of
them:
OP_CHECK_MUTEX_TERM; OP_REFCNT_TERM;

If something goes wrong, and the I/O system has already been destructed,
it's hard to figure out what's going on.  This is solved simply by
moving the I/O termination to the end of the list.

revert move


  Commit: 67db954fa0c605fb9f07545659d97256b6f28ec6
      
https://github.com/Perl/perl5/commit/67db954fa0c605fb9f07545659d97256b6f28ec6
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M cpan/Time-Piece/Piece.pm
    M cpan/Time-Piece/Piece.xs

  Log Message:
  -----------
  XXX cpan PR Time-Piece


  Commit: d3eb6fcd8561292f304cc8d4b33c11872cd5822e
      
https://github.com/Perl/perl5/commit/d3eb6fcd8561292f304cc8d4b33c11872cd5822e
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M cpan/Time-Piece/Piece.xs

  Log Message:
  -----------
  cpan/Time-Piece/Piece.xs: Use foldEQ_locale() if available

Using this is preferable to the glibc function due to it being tailored
for Perl, and is thread-safe in the latest versions.


  Commit: 74092a6bc162aef4ecd492f616131ec1fc286be3
      
https://github.com/Perl/perl5/commit/74092a6bc162aef4ecd492f616131ec1fc286be3
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M cpan/Time-Piece/Piece.xs

  Log Message:
  -----------
  Time-Piece/Piece.xs: Use isDIGIT, not isdigit

isDIGIT is not locale-dependent, matching just [0-9].  There was a bug
using isdigit() in at least one place where it calculated the value of
the digit by subtracting the original of '0' from it.  This works only
if the digit is in [0-9], but there are locales where there is another
set of digits, and so would give a very wrong result.  That makes it
clear to me that only [0-9] were assumed by the original authors.


  Commit: 9c1593f029af31dd9fae97c56592f8d946a16968
      
https://github.com/Perl/perl5/commit/9c1593f029af31dd9fae97c56592f8d946a16968
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M cpan/Time-Piece/Piece.xs

  Log Message:
  -----------
  XXX Time-Piece/Piece.xs: Use isSPACE not isspace

Same msg as prev commit


  Commit: bb2e142db82dd829b0f3473107af2eb397e04bfe
      
https://github.com/Perl/perl5/commit/bb2e142db82dd829b0f3473107af2eb397e04bfe
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M cpan/Time-Piece/Piece.xs

  Log Message:
  -----------
  XXX Time-Piece/Piece.xs: Use isUPPER not isupper

Same msg as prev commit


  Commit: 09f5d76173bb528a8b44ab7e1e8a14a9fc589c73
      
https://github.com/Perl/perl5/commit/09f5d76173bb528a8b44ab7e1e8a14a9fc589c73
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M cpan/Time-Piece/Piece.xs

  Log Message:
  -----------
  XXX Time Piece temporary


  Commit: b4cc70370e5d477b3c32cdd7978084a6f1da74ab
      
https://github.com/Perl/perl5/commit/b4cc70370e5d477b3c32cdd7978084a6f1da74ab
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M cpan/Time-Piece/Piece.xs

  Log Message:
  -----------
  Timepiece


  Commit: 48448952a3306c9024578d3d6ef365dfefcc5204
      
https://github.com/Perl/perl5/commit/48448952a3306c9024578d3d6ef365dfefcc5204
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M pod/perlhacktips.pod

  Log Message:
  -----------
  XXX incomplete perlhacktips:


  Commit: e79bc031e4b8710383a1c7b34452bdb28a363b15
      
https://github.com/Perl/perl5/commit/e79bc031e4b8710383a1c7b34452bdb28a363b15
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M dist/IO/IO.xs

  Log Message:
  -----------
  XXX check if using  ppport IO.xs: Remove fallback code furnished by ppport


  Commit: ce7fa363d10a54e3dcb058a5f0569e4272b4b2dd
      
https://github.com/Perl/perl5/commit/ce7fa363d10a54e3dcb058a5f0569e4272b4b2dd
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M hints/freebsd.sh

  Log Message:
  -----------
  XXX check with freebsd: hints/freebsd.sh


  Commit: 1792a46d59d0b9f16f35415f771e3d0c54270b61
      
https://github.com/Perl/perl5/commit/1792a46d59d0b9f16f35415f771e3d0c54270b61
  Author: Karl Williamson <[email protected]>
  Date:   2021-02-04 (Thu, 04 Feb 2021)

  Changed paths:
    M embed.fnc
    M locale.c
    M proto.h

  Log Message:
  -----------
  f


Compare: https://github.com/Perl/perl5/compare/7b3d7aa8f126...1792a46d59d0

Reply via email to