Patch Package OTP 26.0.1 Released

Patch Package:           OTP 26.0.1
Git Tag:                 OTP-26.0.1
Date:                    2023-06-08
Trouble Report Id:       OTP-18576, OTP-18578, OTP-18581, OTP-18583,
                         OTP-18584, OTP-18585, OTP-18587, OTP-18588,
                         OTP-18593, OTP-18595, OTP-18596, OTP-18597,
                         OTP-18600, OTP-18601, OTP-18602, OTP-18603,
                         OTP-18604, OTP-18617, OTP-18619, OTP-18621,
                         OTP-18632
Seq num:                 ERIERL-944, GH-7213, GH-7247, GH-7248,
                         GH-7251, GH-7252, GH-7259, GH-7264, GH-7282,
                         GH-7288, GH-7297, GH-7301, GH-7303, GH-7338,
                         GH-7339
System:                  OTP
Release:                 26
Application:             compiler-8.3.1, erts-14.0.1, inets-9.0.1,
                         kernel-9.0.1, ssl-11.0.1, stdlib-5.0.1,
                         xmerl-1.3.32
Predecessor:             OTP 26.0

 Check out the git tag OTP-26.0.1, and build a full OTP system
 including documentation. Apply one or more applications from this
 build as patches to your installation using the 'otp_patch_apply'
 tool. For information on install requirements, see descriptions for
 each application version below.

 ---------------------------------------------------------------------
 --- compiler-8.3.1 --------------------------------------------------
 ---------------------------------------------------------------------

 The compiler-8.3.1 application can be applied independently of other
 applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-18576    Application(s): compiler

               Fixed a bug where a failing bsl expression in a guard
               threw an exception instead of causing the guard to
               fail.


  OTP-18581    Application(s): compiler
               Related Id(s): GH-7251

               Fixed a bug that would case the validator to reject
               legal code.


  OTP-18583    Application(s): compiler
               Related Id(s): GH-7259

               The compiler could re-order clauses matching binaries
               so that the incorrect clause would match. That could
               only happen for code that used the option
               {error_location,line} or for code without line or
               column number information (e.g. generated by a parse
               transform).


  OTP-18593    Application(s): compiler
               Related Id(s): GH-7252

               Complex guard expression using the or operator and
               guard BIFs that can fail could sometimes be miscompiled
               so that the guard would succeed even if a call to a
               guard BIF failed.


  OTP-18600    Application(s): compiler
               Related Id(s): GH-7248

               With optimizations disabled, a try/catch construct
               could return an incorrect value.


  OTP-18601    Application(s): compiler

               In rare circumstance, a combination of binary
               construction and binary_part/3 would cause the compiler
               to generate unsafe code that would crash the runtime
               system.


  OTP-18617    Application(s): compiler
               Related Id(s): GH-7338

               The compiler could be very slow when compiling guards
               with multiple guard tests separated with 'or' or ';'.


  OTP-18619    Application(s): compiler
               Related Id(s): GH-7339

               Complex guard expressions using 'or' and map updates
               could succeed even if the map update failed.


 Full runtime dependencies of compiler-8.3.1: crypto-5.1, erts-13.0,
 kernel-8.4, stdlib-5.0


 ---------------------------------------------------------------------
 --- erts-14.0.1 -----------------------------------------------------
 ---------------------------------------------------------------------

 The erts-14.0.1 application can be applied independently of other
 applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-18585    Application(s): erts
               Related Id(s): OTP-18029

               Build of the socket nif failed on Solaris 11.


  OTP-18587    Application(s): erts

               Fixed two reduction-counting bugs relating to binaries.


  OTP-18597    Application(s): erts

               Constructing a binary segment not aligned with a byte
               boundary, with a size not fitting in 31 bits, and with
               a value not fitting in a 64-bit word could crash the
               runtime system.


  OTP-18602    Application(s): erts
               Related Id(s): GH-7282

               When a binary construction failed because of bad size
               for a segment, the error information was not always
               correct.


  OTP-18621    Application(s): erts
               Related Id(s): GH-7288

               Fixed a crash when calling a fun that was defined in a
               module that had been upgraded.


 Full runtime dependencies of erts-14.0.1: kernel-9.0, sasl-3.3,
 stdlib-4.1


 ---------------------------------------------------------------------
 --- inets-9.0.1 -----------------------------------------------------
 ---------------------------------------------------------------------

 The inets-9.0.1 application can be applied independently of other
 applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-18604    Application(s): inets
               Related Id(s): GH-7303, PR-7306

               Do not make the default ssl options by calling
               httpc:ssl_verify_host_options(true) if ssl options are
               supplied by the user.


 Full runtime dependencies of inets-9.0.1: erts-14.0, kernel-9.0,
 mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0,
 stdlib-5.0, stdlib-5.0


 ---------------------------------------------------------------------
 --- kernel-9.0.1 ----------------------------------------------------
 ---------------------------------------------------------------------

 The kernel-9.0.1 application can be applied independently of other
 applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-18578    Application(s): kernel, stdlib
               Related Id(s): GH-7213

               The POSIX error exdev was sometimes incorrectly
               described as "cross domain link" in some error
               messages.


  OTP-18584    Application(s): kernel
               Related Id(s): #7238

               Corrected the socket send function description (send
               with Timeout = nowait). The send function(s) could not
               return {ok, {RestData, SelectInfo}}


 Full runtime dependencies of kernel-9.0.1: crypto-5.0, erts-14.0,
 sasl-3.0, stdlib-5.0


 ---------------------------------------------------------------------
 --- ssl-11.0.1 ------------------------------------------------------
 ---------------------------------------------------------------------

 The ssl-11.0.1 application can be applied independently of other
 applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-18588    Application(s): ssl
               Related Id(s): GH-7264, PR-7277

               Make sure that selection of client certificates handle
               both TLS-1.3 and TLS-1.2 names correctly. Could cause
               valid client certificate to not be selected, and an
               empty client certificate message to be sent to server.


  OTP-18596    Application(s): ssl
               Related Id(s): GH-7247

               Improved ssl:format_error/1 to handle more error
               tuples.


  OTP-18603    Application(s): ssl
               Related Id(s): GH-7297

               Fixed hanging ssl:connect when ssl application is not
               started.


  OTP-18632    Application(s): ssl
               Related Id(s): GH-7301, PR-7300

               Correct handling of retransmission timers, current
               behavior could cause unwanted delays.


 Full runtime dependencies of ssl-11.0.1: crypto-5.0, erts-14.0,
 inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1,
 stdlib-4.1


 ---------------------------------------------------------------------
 --- stdlib-5.0.1 ----------------------------------------------------
 ---------------------------------------------------------------------

 The stdlib-5.0.1 application can be applied independently of other
 applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-18578    Application(s): kernel, stdlib
               Related Id(s): GH-7213

               The POSIX error exdev was sometimes incorrectly
               described as "cross domain link" in some error
               messages.


 Full runtime dependencies of stdlib-5.0.1: compiler-5.0, crypto-4.5,
 erts-13.1, kernel-9.0, sasl-3.0


 ---------------------------------------------------------------------
 --- xmerl-1.3.32 ----------------------------------------------------
 ---------------------------------------------------------------------

 The xmerl-1.3.32 application can be applied independently of other
 applications on a full OTP 26 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-18595    Application(s): xmerl
               Related Id(s): ERIERL-944

               New options to xmerl_scan and xmerl_sax_parser so one
               can limit the behaviour of the parsers to avoid some
               XML security issues.

               xmerl_scan gets one new option:

               -- {allow_entities, Boolean} -- Gives the possibility
               to disallow entities by setting this option to false
               (true is default)

               xmerl_sax_parser gets the following options:

               -- disallow_entities -- Don't allow entities in
               document

               -- {entity_recurse_limit, N} -- Set a limit on entity
               recursion depth (default is 3)

               -- {external_entities, AllowedType} -- Specify which
               types of external entities that are allowed, this also
               affect external DTD's. The types are all(default), file
               and none

               -- {fail_undeclared_ref, Boolean} -- Sets the behavior
               for undeclared references due to an external file is
               not parsed (true is default)

               The old option skip_external_dtd is still valid and the
               same as {external_entities, none} and
               {fail_undeclared_ref, false} but just affects DTD's and
               not other external references.


 Full runtime dependencies of xmerl-1.3.32: erts-6.0, kernel-3.0,
 stdlib-2.5


 ---------------------------------------------------------------------
 ---------------------------------------------------------------------
 ---------------------------------------------------------------------

5 Likes

I guess the OTP did not get the XML entity memo a decade or so ago.

Something any Nextroll folks here being in that space may find amusing, I remember back in the bad old days of being an employee having fun putting XML entities in our VAST responses to SpotX and watching the hilarity ensue…

No idea if they ever fixed that…

Interesting to know how much networking kit is out there by Ericsson (and Cisco which I think uses Erlang widely too) has this enabled? Anyone want to update their bespoke NETCONF devices to start returning entities? :slight_smile:

1 Like