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