File 0666-Fix-Windows-warnings-second-attempt.patch of Package erlang

From 1cf00de37d8415be2f0eb7365b88ba4f9ee41008 Mon Sep 17 00:00:00 2001
From: Raimo Niskanen <raimo@erlang.org>
Date: Wed, 27 Mar 2024 16:45:13 +0100
Subject: [PATCH] Fix Windows warnings, second attempt

The intermediate variable that was removed in the first attenpt
was needed when the port closed for a DEBUGF printout to not
access deallocated memory.
---
 erts/emulator/drivers/common/inet_drv.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/erts/emulator/drivers/common/inet_drv.c b/erts/emulator/drivers/common/inet_drv.c
index 66a5f77d5d..3c712f6109 100644
--- a/erts/emulator/drivers/common/inet_drv.c
+++ b/erts/emulator/drivers/common/inet_drv.c
@@ -12856,8 +12856,11 @@ static void tcp_inet_event(ErlDrvData e, ErlDrvEvent event)
 static int tcp_inet_input(tcp_descriptor* desc, HANDLE event)
 {
     int ret = 0;
+#ifdef DEBUG
+    long port = (long) desc->inet.port;  /* Used after driver_exit() */
+#endif
     ASSERT(!INET_IGNORED(INETP(desc)));
-    DEBUGF(("tcp_inet_input(%p) {s=%d\r\n", desc->inet.port, desc->inet.s));
+    DEBUGF(("tcp_inet_input(%lx) {s=%d\r\n", port, desc->inet.s));
     if (desc->inet.state == INET_STATE_ACCEPTING) {
 	SOCKET s;
 	unsigned int len;
@@ -12994,11 +12997,11 @@ static int tcp_inet_input(tcp_descriptor* desc, HANDLE event)
     else {
 	/* maybe a close op from connection attempt?? */
 	sock_select(INETP(desc),FD_ACCEPT,0);
-	DEBUGF(("tcp_inet_input(%p): s=%d bad state: %04x\r\n", 
-		desc->inet.port, desc->inet.s, desc->inet.state));
+	DEBUGF(("tcp_inet_input(%lx): s=%d bad state: %04x\r\n", 
+		port, desc->inet.s, desc->inet.state));
     }
  done:
-    DEBUGF(("tcp_inet_input(%p) }\r\n", desc->inet.port));
+    DEBUGF(("tcp_inet_input(%lx) }\r\n", port));
     return ret;
 }
 
-- 
2.35.3

openSUSE Build Service is sponsored by