Branch: refs/heads/smoke-me/khw-safe
  Home:   https://github.com/Perl/perl5
  Commit: 611484264d956a09cf690ff0fdd6ceb88ff5fc5f
      
https://github.com/Perl/perl5/commit/611484264d956a09cf690ff0fdd6ceb88ff5fc5f
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M dist/Time-HiRes/HiRes.pm
    M dist/Time-HiRes/HiRes.xs

  Log Message:
  -----------
  HiRes.xs: Remove unused macro defns


  Commit: 9e71f59e3488f0e363f2ec2aeb17278b7ab94588
      
https://github.com/Perl/perl5/commit/9e71f59e3488f0e363f2ec2aeb17278b7ab94588
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M locale.c

  Log Message:
  -----------
  locale.c: Fix typo in #ifdef

This misspelling led to the code assuming that the platform didn't have
a feature that, if used, would result in faster execution.


  Commit: c467c3f85d025f8bb845353a0f7743ef4a988304
      
https://github.com/Perl/perl5/commit/c467c3f85d025f8bb845353a0f7743ef4a988304
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M ext/POSIX/POSIX.xs

  Log Message:
  -----------
  POSIX.xs: Use alternative functions if avail

These preprocessor directives failed to account for the existence of
common alternative functions (which the implementation knows about) if
the plain function is not available on the platform.

I doubt that this makes any difference, but it makes these conditionals
consistent with the others nearby.


  Commit: 362429899a9346cd62a0997a05ccaabc9d8ea4cc
      
https://github.com/Perl/perl5/commit/362429899a9346cd62a0997a05ccaabc9d8ea4cc
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M ext/POSIX/POSIX.xs

  Log Message:
  -----------
  POSIX.xs: White-space only

Indent to standards


  Commit: 143e6faa5c78af8db12ab47657627c678320b96a
      
https://github.com/Perl/perl5/commit/143e6faa5c78af8db12ab47657627c678320b96a
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M perlvars.h

  Log Message:
  -----------
  perlvars.h: Fix comment


  Commit: a8f6b8c321823b1f2d8d45a7866ac084cb0ae57e
      
https://github.com/Perl/perl5/commit/a8f6b8c321823b1f2d8d45a7866ac084cb0ae57e
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M time64_config.h

  Log Message:
  -----------
  time64_config.h: #include reentr.h

This is so it will get any reentrant versions automatically


  Commit: 9808ba7d5dd6ed1549441b64e00b93fec36cbf2e
      
https://github.com/Perl/perl5/commit/9808ba7d5dd6ed1549441b64e00b93fec36cbf2e
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Remove ';' from 'NOOP;'

These are useless here


  Commit: 2a2976768a6e5a4a9a28867c5d80077d38a3c5f8
      
https://github.com/Perl/perl5/commit/2a2976768a6e5a4a9a28867c5d80077d38a3c5f8
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M thread.h

  Log Message:
  -----------
  XXX Change many-reader mutex API to conform with other


  Commit: 05a232bc28954f62e69e6f077163cb07ae50d466
      
https://github.com/Perl/perl5/commit/05a232bc28954f62e69e6f077163cb07ae50d466
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M thread.h

  Log Message:
  -----------
  Add start-up/tear-down for many-reader mutexes

These were missed in 5640a370e8b19af74b8ca0b4694464c21a87916b.


  Commit: e2c39e10aac5cd9af2ccce51eaa7e82378da3edf
      
https://github.com/Perl/perl5/commit/e2c39e10aac5cd9af2ccce51eaa7e82378da3edf
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h: Move some code around

This is in preparation for future commits where things will be needed
earlier/later than currently.


  Commit: 4cff36d2443c6dceaf1090949bd6876491fbe656
      
https://github.com/Perl/perl5/commit/4cff36d2443c6dceaf1090949bd6876491fbe656
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M ext/POSIX/POSIX.xs
    M locale.c
    M perl.h

  Log Message:
  -----------
  Change name of mutex macro.

This macro is for localeconv(); the new name is clearer as to the
meaning, and this preps for further changes.


  Commit: 32ff76f340179662073cb9320d821c04ceba6294
      
https://github.com/Perl/perl5/commit/32ff76f340179662073cb9320d821c04ceba6294
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M makedef.pl
    M perl.h
    M perlvars.h

  Log Message:
  -----------
  Refactor locale mutex setup

This was prompted by my realization that even on a locale thread-safe
platform, there are functions we call that may not be thread-safe in
that they return their results in an internal static buffer, which may
be process-wide instead of per-thread.  Tomasz Konojacki++ briefly
looked at Windows source code for localeconv() and this indeed did
appear to be the case.

If we thought a platform was thread-safe, no locale mutexes were set up,
and instead the calls in the code to lock were no-oops.  This would lead
to potential races, the most likely candidate being localeconv().  None
have been reported, at least as far as we know.  Likely that function
isn't called frequently.  This would be true on both Posix 2008 and
Windows platforms, except possibly for FreeBSD, which may be the only
platform that we support that has a localeconv_l() function, which is
supposed to be immune from this issue..

The solution adopted here is to test for all the possible functions that
the Perl core uses that may be susceptible to this, and to set up the
mutex if any are found.  Thus there won't be no-ops where there should
be a lock.


  Commit: 688bc80994c609daffe35943d459436ab2c3a907
      
https://github.com/Perl/perl5/commit/688bc80994c609daffe35943d459436ab2c3a907
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M ext/POSIX/POSIX.xs
    M locale.c
    M perl.h

  Log Message:
  -----------
  XXX fill in commit Name individual locale locks

These locks for different functions all use the same underlying mutex;
but that may not always be the case.  By creating separate names
used only when we think they will be necessary, the compiler will
complain if the conditions in the code that actually use them are the
same.  Doing this showed a misspelling in an #ifdef, fixed in XXX


  Commit: 669482a303b691e82f1a7c1840bcaece718a8e57
      
https://github.com/Perl/perl5/commit/669482a303b691e82f1a7c1840bcaece718a8e57
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M perl.h
    M perlvars.h

  Log Message:
  -----------
  Add capability of many-reader locale lock

This will be used in future commits


  Commit: a95e322e3ea88bfbd1c2a0ac2464f5f3a56dfe18
      
https://github.com/Perl/perl5/commit/a95e322e3ea88bfbd1c2a0ac2464f5f3a56dfe18
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M perl.h
    M time64.c
    M util.c

  Log Message:
  -----------
  Change name of mutex macro for ENV/LOCALE locking

This combines two diffrent mutexes, and it isn't clear from the former
name what precisely is happening.


  Commit: 1c4502a2e9e9bdf052aa7b340ca33dcb7e0af50a
      
https://github.com/Perl/perl5/commit/1c4502a2e9e9bdf052aa7b340ca33dcb7e0af50a
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M perl.h
    M perlvars.h

  Log Message:
  -----------
  perl.h: Add capability for many-reader ENV mutex locking

There are several places where there could be a problem in the
environment were changed by another thread when a function is executing,
but otherwise if another thread were reading the environment at the same
time, there isn't a problem.  This adds mutex for that situation.
Future commits will take advantage of it.


  Commit: 36dddfd66ca2445f90b5bc1277b2ef96f926db7a
      
https://github.com/Perl/perl5/commit/36dddfd66ca2445f90b5bc1277b2ef96f926db7a
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  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: 340b2bd0c012fb9f907544ac5c36d1a2e92577bd
      
https://github.com/Perl/perl5/commit/340b2bd0c012fb9f907544ac5c36d1a2e92577bd
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M locale.c

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


  Commit: 054f33824eaf898b531a5aba830229b950279655
      
https://github.com/Perl/perl5/commit/054f33824eaf898b531a5aba830229b950279655
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  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, one where the functions only read; and one where they can
write, or 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: f72af9d878f8a0af18f5a43acb297f4cb1c3863d
      
https://github.com/Perl/perl5/commit/f72af9d878f8a0af18f5a43acb297f4cb1c3863d
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M locale.c
    M util.c

  Log Message:
  -----------
  Move mutex to called function

This function has a critical section.  Since it is a long-standing API
function, it needs to set one up itself rather than relying on callers
to do it.  Remove the caller's set up, and do it inside.


  Commit: 69ff76f4faab50ef2b9b3bab8522ce1708544f92
      
https://github.com/Perl/perl5/commit/69ff76f4faab50ef2b9b3bab8522ce1708544f92
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M locale.c
    M util.c

  Log Message:
  -----------
  strftime is a critical section

with regard to changes in the locale and environment.  And it writes
certain global variables, so must be write-locked.


  Commit: 3b6e988bcc8a97ddc5127b91cce84d1d23a1ec5f
      
https://github.com/Perl/perl5/commit/3b6e988bcc8a97ddc5127b91cce84d1d23a1ec5f
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M Configure
    M Cross/config.sh-arm-linux
    M Cross/config.sh-arm-linux-n770
    M NetWare/config.wc
    M Porting/config.sh
    M config_h.SH
    M configure.com
    M metaconfig.h
    M plan9/config_sh.sample
    M uconfig.h
    M uconfig.sh
    M uconfig64.sh
    M win32/config.gc
    M win32/config.vc

  Log Message:
  -----------
  preserves


  Commit: 4eb67aa53b1ae020617d4991ce2f95e2f85880af
      
https://github.com/Perl/perl5/commit/4eb67aa53b1ae020617d4991ce2f95e2f85880af
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M inline.h
    M perl.h

  Log Message:
  -----------
  Add GETENV_LOCK

get_env() needs to lock other threads from writing to the environment
while it is executing.  It may need to have an exclusive lock if those
threads can clobber its buffer before it gets a chance to save them.
The previous commit has added a Configure probe which tells us if that
is the case.  This commit uses it to select which type of mutex to use.


  Commit: 19e63fbc1eecd11276e9f95a75734238bae573f7
      
https://github.com/Perl/perl5/commit/19e63fbc1eecd11276e9f95a75734238bae573f7
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M pod/perllocale.pod

  Log Message:
  -----------
  perllocale: Remove stray markup


  Commit: acedcaef9c490c759b167d554f860f900aabb465
      
https://github.com/Perl/perl5/commit/acedcaef9c490c759b167d554f860f900aabb465
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M ext/POSIX/POSIX.xs
    M perl.h
    M time64.c
    M util.c
    M win32/win32.c

  Log Message:
  -----------
  l fcn locks


  Commit: a5bacc0519210c4ab24aadd19a151811f562e61c
      
https://github.com/Perl/perl5/commit/a5bacc0519210c4ab24aadd19a151811f562e61c
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  LC_NUMERIC on old windows


  Commit: 8d620b91051e95005d6d17789855d4ded10f7282
      
https://github.com/Perl/perl5/commit/8d620b91051e95005d6d17789855d4ded10f7282
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M embedvar.h
    M inline.h
    M intrpvar.h
    M perl.h
    M util.c

  Log Message:
  -----------
  mem_log


  Commit: 39f31a725572ea5d0aaa712424f73daccdd6eeac
      
https://github.com/Perl/perl5/commit/39f31a725572ea5d0aaa712424f73daccdd6eeac
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M perl.h
    M reentr.h
    M regen/reentr.pl

  Log Message:
  -----------
  reentr


  Commit: 2444ec3bddf17ca242db312b9573889c3788b29b
      
https://github.com/Perl/perl5/commit/2444ec3bddf17ca242db312b9573889c3788b29b
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M inline.h
    M intrpvar.h

  Log Message:
  -----------
  more memlog


  Commit: deedbbec89c4afa04b9836795e48555b11dade1a
      
https://github.com/Perl/perl5/commit/deedbbec89c4afa04b9836795e48555b11dade1a
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M perl.h

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


  Commit: 0a93b4930135d2bf44224b77cb0b880a87bc93f5
      
https://github.com/Perl/perl5/commit/0a93b4930135d2bf44224b77cb0b880a87bc93f5
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M embedvar.h
    M regen/embed.pl

  Log Message:
  -----------
  XXX duplicate fcn: embed.pl


  Commit: 2333a16ebf1531767be372c71bbc71fecdfeb618
      
https://github.com/Perl/perl5/commit/2333a16ebf1531767be372c71bbc71fecdfeb618
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M embedvar.h
    M regen/embed.pl

  Log Message:
  -----------
  Revert "XXX duplicate fcn: embed.pl"

This reverts commit 9f406077c45904070e2c9ef0aefd1bc668868684.


  Commit: 817e2311091105299cb84b6d1f70d4785244e1c0
      
https://github.com/Perl/perl5/commit/817e2311091105299cb84b6d1f70d4785244e1c0
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M makedef.pl

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


  Commit: b4664c3d416440696b7315b57331d86504200036
      
https://github.com/Perl/perl5/commit/b4664c3d416440696b7315b57331d86504200036
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M perlvars.h

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


  Commit: f379c89507ebacbb8223bdb3239a50cfd5b817ef
      
https://github.com/Perl/perl5/commit/f379c89507ebacbb8223bdb3239a50cfd5b817ef
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M perl.h
    M perlvars.h

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


  Commit: 79c7d583b966836659b01b8f78afa1bc23567109
      
https://github.com/Perl/perl5/commit/79c7d583b966836659b01b8f78afa1bc23567109
  Author: Karl Williamson <[email protected]>
  Date:   2020-12-04 (Fri, 04 Dec 2020)

  Changed paths:
    M perl.h

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


Compare: https://github.com/Perl/perl5/compare/f0bb8d343926...79c7d583b966

Reply via email to