File 1296-erts-Fix-some-possibly-unitialized-warnings.patch of Package erlang

From 0b5f6731c7089e1123b8e6e0b0827861cf2327ad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lukas=20Backstr=C3=B6m?= <lukas@erlang.org>
Date: Tue, 13 May 2025 09:20:58 +0200
Subject: [PATCH 1/2] erts: Fix some possibly unitialized warnings

---
 erts/emulator/beam/atom.c                   | 2 ++
 erts/emulator/beam/big.c                    | 2 ++
 erts/emulator/beam/erl_db.c                 | 1 +
 erts/emulator/beam/jit/x86/instr_bs.cpp     | 1 +
 erts/emulator/drivers/common/inet_drv.c     | 2 +-
 erts/emulator/nifs/common/prim_socket_nif.c | 4 ++--
 erts/emulator/nifs/common/socket_util.c     | 3 +++
 7 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/erts/emulator/beam/atom.c b/erts/emulator/beam/atom.c
index f39220c9b6..a4dc975bf2 100644
--- a/erts/emulator/beam/atom.c
+++ b/erts/emulator/beam/atom.c
@@ -237,6 +237,8 @@ erts_atom_put_index(const byte *name, Sint len, ErtsAtomEncoding enc, int trunc)
     Atom a;
     int aix;
 
+    ERTS_UNDEF(no_latin1_chars, -1);
+
 #ifdef ERTS_ATOM_PUT_OPS_STAT
     erts_atomic_inc_nob(&atom_put_ops);
 #endif
diff --git a/erts/emulator/beam/big.c b/erts/emulator/beam/big.c
index c21725a8e5..8136e2125c 100644
--- a/erts/emulator/beam/big.c
+++ b/erts/emulator/beam/big.c
@@ -2241,6 +2241,7 @@ term_to_Uint(Eterm term, Uint *up)
 	    return 0;
 	}
 	while (xl-- > 0) {
+            ASSERT(n < 64);
 	    uval |= ((Uint)(*xr++)) << n;
 	    n += D_EXP;
 	}
@@ -2393,6 +2394,7 @@ int term_to_Sint(Eterm term, Sint *sp)
 	    return 0;
 	}
 	while (xl-- > 0) {
+            ASSERT(n < 64);
 	    uval |= ((Uint)(*xr++)) << n;
 	    n += D_EXP;
 	}
diff --git a/erts/emulator/beam/erl_db.c b/erts/emulator/beam/erl_db.c
index b1cc9b263f..eb102e8066 100644
--- a/erts/emulator/beam/erl_db.c
+++ b/erts/emulator/beam/erl_db.c
@@ -1435,6 +1435,7 @@ do_update_counter(Process *p, DbTable* tb,
     Eterm* htop;          /* actual heap usage */
     Eterm* hstart;
     Eterm* hend;
+    ERTS_UNDEF(ret, THE_NON_VALUE);
 
     UseTmpHeap(5, p);
     if (!(tb->common.status & (DB_SET | DB_ORDERED_SET | DB_CA_ORDERED_SET))) {
diff --git a/erts/emulator/drivers/common/inet_drv.c b/erts/emulator/drivers/common/inet_drv.c
index 102235cbf1..b9267041de 100644
--- a/erts/emulator/drivers/common/inet_drv.c
+++ b/erts/emulator/drivers/common/inet_drv.c
@@ -14281,7 +14281,7 @@ static int packet_inet_init(void)
 #ifdef AF_UNSPEC
     disassoc_sa.sa_family = AF_UNSPEC;
 #endif /* #ifdef AF_UNSPEC */
-    disassoc_sa_size = disassoc_sa.sa_data - (char *)&disassoc_sa;
+    disassoc_sa_size = offsetof(struct sockaddr, sa_data);
 
     return 0;
 }
diff --git a/erts/emulator/nifs/common/prim_socket_nif.c b/erts/emulator/nifs/common/prim_socket_nif.c
index ac76306b80..e9ca031103 100644
--- a/erts/emulator/nifs/common/prim_socket_nif.c
+++ b/erts/emulator/nifs/common/prim_socket_nif.c
@@ -6339,7 +6339,7 @@ ERL_NIF_TERM nif_recvmsg(ErlNifEnv*         env,
     ssize_t          bufSz,   ctrlSz;
     int              flags;
     ERL_NIF_TERM     res;
-    BOOLEAN_T        a1ok, a2ok;
+    BOOLEAN_T        a1ok, a2ok = FALSE;
 
     ESOCK_ASSERT( argc == 5 );
 
@@ -12779,7 +12779,7 @@ int esock_select_cancel(ErlNifEnv*             env,
                                 ESockDescriptor* descP,      \
                                 ERL_NIF_TERM     sockRef)    \
     {                                                        \
-        BOOLEAN_T          popped, activated;                \
+        BOOLEAN_T          popped, activated = FALSE;        \
         int                sres;                             \
         ERL_NIF_TERM       reason;                           \
         ESockRequestor*    reqP = &descP->R;                 \
diff --git a/erts/emulator/nifs/common/socket_util.c b/erts/emulator/nifs/common/socket_util.c
index 68f689ac74..d19714dfad 100644
--- a/erts/emulator/nifs/common/socket_util.c
+++ b/erts/emulator/nifs/common/socket_util.c
@@ -1653,6 +1653,9 @@ BOOLEAN_T esock_decode_in6_addr(ErlNifEnv*       env,
         int                 arity;
         size_t              n;
         struct in6_addr     sa;
+        #ifndef VALGRIND
+        sys_memzero(&sa, sizeof(sa));
+        #endif
 
         if (! GET_TUPLE(env, eAddr, &arity, &tuple))
             return FALSE;
-- 
2.43.0

openSUSE Build Service is sponsored by