Patch Package OTP 25.3.2.21 Released

Patch Package:           OTP 25.3.2.21
Git Tag:                 OTP-25.3.2.21
Date:                    2025-05-08
Trouble Report Id:       OTP-19577, OTP-19599, OTP-19605, OTP-19608,
                         OTP-19625
Seq num:                 CVE-2025-46712, ERIERL-1220, GH-9707,
                         GH-9720, PR-9696, PR-9724, PR-9765, PR-9767
System:                  OTP
Release:                 25
Application:             erts-13.2.2.16, kernel-8.5.4.6, ssh-4.15.3.13
Predecessor:             OTP 25.3.2.20

 Check out the git tag OTP-25.3.2.21, 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.

 ---------------------------------------------------------------------
 --- erts-13.2.2.16 --------------------------------------------------
 ---------------------------------------------------------------------

 Note! The erts-13.2.2.16 application *cannot* be applied
       independently of other applications on an arbitrary OTP 25
       installation.

       On a full OTP 25 installation, also the following runtime
       dependencies have to be satisfied:
       -- kernel-8.5 (first satisfied in OTP 25.1)
       -- stdlib-4.1 (first satisfied in OTP 25.1)


 --- Fixed Bugs and Malfunctions ---

  OTP-19577    Application(s): erts
               Related Id(s): ERIERL-1220, PR-9696

               Fixed an emulator crash when setting an error_handler
               module that was not yet loaded.


  OTP-19599    Application(s): erts
               Related Id(s): PR-9724

               Fixed a rare bug that could cause an emulator crash
               after unloading a module or erasing a persistent_term.


 Full runtime dependencies of erts-13.2.2.16: kernel-8.5, sasl-3.3,
 stdlib-4.1


 ---------------------------------------------------------------------
 --- kernel-8.5.4.6 --------------------------------------------------
 ---------------------------------------------------------------------

 Note! The kernel-8.5.4.6 application *cannot* be applied
       independently of other applications on an arbitrary OTP 25
       installation.

       On a full OTP 25 installation, also the following runtime
       dependencies have to be satisfied:
       -- erts-13.1.3 (first satisfied in OTP 25.2)
       -- stdlib-4.1.1 (first satisfied in OTP 25.1.1)


 --- Fixed Bugs and Malfunctions ---

  OTP-19605    Application(s): kernel
               Related Id(s): GH-9720, PR-9765

               With this change, disk_log will not crash when using
               chunk_step/3 after log size was decreased.


  OTP-19608    Application(s): kernel
               Related Id(s): GH-9707, PR-9767

               With this change, disk_log will not run into infinite
               loop when using chunk/2,3 after log size was decreased.


 Full runtime dependencies of kernel-8.5.4.6: crypto-5.0, erts-13.1.3,
 sasl-3.0, stdlib-4.1.1


 ---------------------------------------------------------------------
 --- ssh-4.15.3.13 ---------------------------------------------------
 ---------------------------------------------------------------------

 The ssh-4.15.3.13 application can be applied independently of other
 applications on a full OTP 25 installation.

 --- Fixed Bugs and Malfunctions ---

  OTP-19625    Application(s): ssh
               Related Id(s): CVE-2025-46712

               Fix KEX strict implementation according to
               draft-miller-sshm-strict-kex-01 document.


 Full runtime dependencies of ssh-4.15.3.13: crypto-5.0, erts-11.0,
 kernel-6.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15


 ---------------------------------------------------------------------
 --- Thanks to -------------------------------------------------------
 ---------------------------------------------------------------------

 João Henrique Ferreira de Freitas, Lý Nhật Tâm


 ---------------------------------------------------------------------
 ---------------------------------------------------------------------
 ---------------------------------------------------------------------
1 Like

Hello, everyone.

❯ asdf list erlang                                                                 
...                                                                        
  25.3.2.20                                                                        
  26.2.5.12                                                                        
 *27.3.4                                                                           
  28.0-rc4                                                                         
❯ asdf install erlang 25.3.2.21                                                    
ERROR: 'asdf_25.3.2.21' is not a kerl-managed Erlang/OTP installation.             
Build 'asdf_25.3.2.21' has been deleted.                                           
Extracting source code for normal build...                                         
Building (normal) Erlang/OTP 25.3.2.21 (asdf_25.3.2.21); please wait...            
Initializing (build) log file at /home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_25.3.2.21/otp_build_25.3.2.21.log.
autoconf: error: no input file                                                     
APPLICATIONS DISABLED (See: /home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_25.3.2.21/otp_build_25.3.2.21.log)
 * jinterface     : No Java compiler found                                         
                                                                                   
ERROR: build failed.                                                               
make[4]: *** [x86_64-pc-linux-gnu/Makefile:900: obj/x86_64-pc-linux-gnu/opt/jit/dist.o] Error 1
make[4]: *** Waiting for unfinished jobs....                                       
make[4]: Leaving directory '/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_25.3.2.21/otp_src_25.3.2.21/erts/emulator'
make[3]: *** [/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_25.3.2.21/otp_src_25.3.2.21/make/run_make.mk:35: opt] Error 2
make[3]: Leaving directory '/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_25.3.2.21/otp_src_25.3.2.21/erts/emulator'
make[2]: *** [Makefile:45: opt] Error 2                                            
make[2]: Leaving directory '/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_25.3.2.21/otp_src_25.3.2.21/erts'
make[1]: *** [Makefile:60: jit] Error 2                                            
make[1]: Leaving directory '/home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_25.3.2.21/otp_src_25.3.2.21/erts'
make: *** [Makefile:503: emulator] Error 2                                         
                                                                                   
Please see /home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_25.3.2.21/otp_build_25.3.2.21.log for full details.
Auto cleaning all artifacts except the log file...                                 
(use KERL_AUTOCLEAN=0 to keep build on failure, if desired)                        
Cleaning up compilation products for 'asdf_25.3.2.21' under:                       
  - /home/user/.asdf/plugins/erlang/kerl-home/builds...                            
  - /home/user/.asdf/downloads/erlang/25.3.2.21...                                 
... done.                                                                          
error installing version: failed to run install callback: exit status 1            
❯ asdf info                                                                        
OS:                                                                                
Linux arch 6.14.6-arch1-1 #1 SMP PREEMPT_DYNAMIC Fri, 09 May 2025 17:36:18 +0000 x86_64 GNU/Linux
                                                                                   
SHELL:                                                                             
zsh 5.9 (x86_64-pc-linux-gnu)                                                      
                                                                                   
BASH VERSION:                                                                      
5.2.37(1)-release                                                                  
                                                                                   
ASDF VERSION:                                                                      
0.16.7-arch                                                                        
                                                                                   
ASDF INTERNAL VARIABLES:                                                           
ASDF_DEFAULT_TOOL_VERSIONS_FILENAME=.tool-versions                                 
ASDF_DATA_DIR=/home/user/.asdf                                                     
ASDF_CONFIG_FILE=/home/user/.asdfrc                                                                                                                                                                                                            
                                                                                   
ASDF INSTALLED PLUGINS:                                                            
elixir    https://github.com/asdf-vm/asdf-elixir.git d80b9250f9baf3bc170942cf25bf1020a4f63626
erlang    https://github.com/asdf-vm/asdf-erlang.git 5f27baa62864bb433be9c7f2f7d69b475f534376

otp_build_25.3.2.21.log

beam/dist.c: In function �<80><98>erts_internal_dist_spawn_request_4�<80><99>:
beam/dist.c:5928:15: error: two or more data types in declaration specifiers
5928 | Eterm bool = ((monitor_oflags & ERTS_ML_FLG_SPAWN_MONITOR)
| ^~~~
beam/dist.c:5928:20: error: expected identifier or �<80><98>(�<80><99> before �<80><98>=�<80><99> token
5928 | Eterm bool = ((monitor_oflags & ERTS_ML_FLG_SPAWN_MONITOR)
| ^

Your C compiler complains about identifiers called bool. Clearly that variable should have a different name, but this builds fine for me on Fedora 41 so I suspect Arch does something unexpected. Your build log says it’s x86_64-pc-linux-gnu which implies glibc, so that’s not it. Maybe the compiler isn’t GCC, or it’s configured with odd defaults.

Hi, @mikpe.

I check it out:

❯ which cc                                                                         
/usr/bin/cc                                                                        
❯ ls -l $(which cc)                                                                
lrwxrwxrwx 1 root root 3 Apr 27 17:13 /usr/bin/cc -> gcc                           
❯ gcc --version                                                                    
gcc (GCC) 15.1.1 20250425                                                          
Copyright (C) 2025 Free Software Foundation, Inc.                                  
This is free software; see the source for copying conditions.  There is NO         
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.        
                                                                                   
❯ clang --version                                                                  
clang version 19.1.7                                                               
Target: x86_64-pc-linux-gnu                                                        
Thread model: posix                                                                
InstalledDir: /usr/bin                                                             
                                                                                   
❯ export CC=clang                                                                  
❯ echo $CC                                                                         
clang                                                                              
❯ asdf install erlang 25.3.2.21                                                    
ERROR: 'asdf_25.3.2.21' is not a kerl-managed Erlang/OTP installation.             
Build 'asdf_25.3.2.21' has been deleted.                                           
Extracting source code for normal build...                                         
Building (normal) Erlang/OTP 25.3.2.21 (asdf_25.3.2.21); please wait...            
Initializing (build) log file at /home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_25.3.2.21/otp_build_25.3.2.21.log.
autoconf: error: no input file                                                     
APPLICATIONS DISABLED (See: /home/user/.asdf/plugins/erlang/kerl-home/builds/asdf_25.3.2.21/otp_build_25.3.2.21.log)
 * jinterface     : No Java compiler found                                         
                                                                                   
Erlang/OTP 25.3.2.21 (asdf_25.3.2.21) has been successfully built.                 
Cleaning up compilation products for 'asdf_25.3.2.21' under:                       
  - /home/user/.asdf/plugins/erlang/kerl-home/builds...                            
  - /home/user/.asdf/downloads/erlang/25.3.2.21...                                                                                                                                                                                            
... done.

Thanks.

Confirmed, compiling OTP-25.3.2.21 with gcc-15.1 fails. That’s because erts: avoid use 'bool' keyword when compiling with lttng · erlang/otp@454128f · GitHub hasn’t been backported to the maint-25 branch yet. I tried it locally, the patch applies w/o issue and allows the build to succeed.

2 Likes

I think it also should also be possible to build using -std=gnu99.

That is by doing this: CFLAGS="-g -O2 -std=gnu99" asdf install erlang 25.3.2.21

1 Like

Hi, @garazdawi.

I’ve tested it and it works.
Thanks.

2 Likes