File 1009-Since-the-string-from-strerror-should-never-be-modif.patch of Package erlang

From 894c45b308c98852769263d98a18e517183f414b Mon Sep 17 00:00:00 2001
From: Philipp Klaus Krause <pkk@spth.de>
Date: Wed, 14 Oct 2020 10:45:34 +0200
Subject: [PATCH] Since the string from strerror should never be modified, use
 const.

---
 erts/emulator/beam/erl_alloc.c             |  2 +-
 erts/emulator/beam/erl_drv_thread.c        |  4 ++--
 erts/emulator/beam/erl_init.c              |  2 +-
 erts/emulator/sys/unix/sys_time.c          | 10 +++++-----
 erts/etc/common/erlexec.c                  |  4 ++--
 erts/lib_src/common/ethr_aux.c             |  2 +-
 lib/erl_interface/src/connect/ei_connect.c |  4 ++--
 lib/tools/c_src/erl_memory.c               |  2 +-
 8 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/erts/emulator/beam/erl_alloc.c b/erts/emulator/beam/erl_alloc.c
index f98471420a..ade67e7301 100644
--- a/erts/emulator/beam/erl_alloc.c
+++ b/erts/emulator/beam/erl_alloc.c
@@ -710,7 +710,7 @@ erts_alloc_init(int *argc, char **argv, ErtsAllocInitOpts *eaiop)
 	errno = 0;
 	if (mlockall(MCL_CURRENT|MCL_FUTURE) != 0) {
 	    int err = errno;
-	    char *errstr = err ? strerror(err) : "unknown";
+	    const char *errstr = err ? strerror(err) : "unknown";
 	    erts_exit(1, "Failed to lock physical memory: %s (%d)\n",
 		     errstr, err);
 	}
diff --git a/erts/emulator/beam/erl_drv_thread.c b/erts/emulator/beam/erl_drv_thread.c
index 04839fa958..949d89232a 100644
--- a/erts/emulator/beam/erl_drv_thread.c
+++ b/erts/emulator/beam/erl_drv_thread.c
@@ -35,9 +35,9 @@
    + sizeof(((ErlDrvThreadOpts *) 0)->LAST_FIELD))
 
 static void
-fatal_error(int err, char *func)
+fatal_error(int err, const char *func)
 {
-    char *estr = strerror(err);
+    const char *estr = strerror(err);
     if (!estr) {
 	if (err == ENOTSUP)
 	    estr = "Not supported";
diff --git a/erts/emulator/beam/erl_init.c b/erts/emulator/beam/erl_init.c
index aca03157dd..6ab85cffc4 100644
--- a/erts/emulator/beam/erl_init.c
+++ b/erts/emulator/beam/erl_init.c
@@ -2380,7 +2380,7 @@ erl_start(int argc, char **argv)
 
 __decl_noreturn void erts_thr_fatal_error(int err, char *what)
 {
-    char *errstr = err ? strerror(err) : NULL;
+    const char *errstr = err ? strerror(err) : NULL;
     erts_fprintf(stderr,
 		 "Failed to %s: %s%s(%d)\n",
 		 what,
diff --git a/erts/emulator/sys/unix/sys_time.c b/erts/emulator/sys/unix/sys_time.c
index 64c8f006c9..5fd48b793c 100644
--- a/erts/emulator/sys/unix/sys_time.c
+++ b/erts/emulator/sys/unix/sys_time.c
@@ -453,7 +453,7 @@ posix_clock_gettime(clockid_t id, char *name)
 
     if (clock_gettime(id, &ts) != 0) {
 	int err = errno;
-	char *errstr = err ? strerror(err) : "unknown";
+	const char *errstr = err ? strerror(err) : "unknown";
 	erts_exit(ERTS_ABORT_EXIT,
 		 "clock_gettime(%s, _) failed: %s (%d)\n",
 		 name, errstr, err);
@@ -498,13 +498,13 @@ posix_clock_gettime_times(clockid_t mid, char *mname,
     serr = errno;
     
     if (mres != 0) {
-	char *errstr = merr ? strerror(merr) : "unknown";
+	const char *errstr = merr ? strerror(merr) : "unknown";
 	erts_exit(ERTS_ABORT_EXIT,
 		 "clock_gettime(%s, _) failed: %s (%d)\n",
 		 mname, errstr, merr);
     }
     if (sres != 0) {
-	char *errstr = serr ? strerror(serr) : "unknown";
+	const char *errstr = serr ? strerror(serr) : "unknown";
 	erts_exit(ERTS_ABORT_EXIT,
 		 "clock_gettime(%s, _) failed: %s (%d)\n",
 		 sname, errstr, serr);
@@ -698,7 +698,7 @@ mach_clocks_init(void)
 
     if (atexit(mach_clocks_fini) != 0) {
 	int err = errno;
-	char *errstr = err ? strerror(err) : "unknown";
+	const char *errstr = err ? strerror(err) : "unknown";
 	erts_exit(ERTS_ABORT_EXIT,
 		 "Failed to register mach_clocks_fini() "
 		 "for call at exit: %s (%d)\n",
@@ -853,7 +853,7 @@ erts_os_system_time(void)
 
     if (gettimeofday(&tv, NULL) != 0) {
 	int err = errno;
-	char *errstr = err ? strerror(err) : "unknown";
+	const char *errstr = err ? strerror(err) : "unknown";
 	erts_exit(ERTS_ABORT_EXIT,
 		 "gettimeofday(_, NULL) failed: %s (%d)\n",
 		 errstr, err);
diff --git a/erts/etc/common/erlexec.c b/erts/etc/common/erlexec.c
index 06a60244ff..028c3a6789 100644
--- a/erts/etc/common/erlexec.c
+++ b/erts/etc/common/erlexec.c
@@ -1854,10 +1854,10 @@ done:
 #undef ENSURE
 }
 
-static char *
+static const char *
 errno_string(void)
 {
-    char *str = strerror(errno);
+    const char *str = strerror(errno);
     if (!str)
 	return "unknown error";
     return str;
diff --git a/erts/lib_src/common/ethr_aux.c b/erts/lib_src/common/ethr_aux.c
index b844960854..c24f262e9c 100644
--- a/erts/lib_src/common/ethr_aux.c
+++ b/erts/lib_src/common/ethr_aux.c
@@ -738,7 +738,7 @@ ETHR_IMPL_NORETURN__ ethr_fatal_error__(const char *file,
 					const char *func,
 					int err)
 {
-    char *errstr;
+    const char *errstr;
     if (err == ENOTSUP)
 	errstr = "Operation not supported";
     else {
diff --git a/lib/tools/c_src/erl_memory.c b/lib/tools/c_src/erl_memory.c
index 13a3fccc6d..d52203c7cd 100644
--- a/lib/tools/c_src/erl_memory.c
+++ b/lib/tools/c_src/erl_memory.c
@@ -1859,7 +1859,7 @@ error_string(int error)
     error_str = unknown_error;
 
     if (error > 0) {
-	char *str = strerror(error);
+	const char *str = strerror(error);
 	if (str)
 	    error_str = str;
     }
-- 
2.26.2

openSUSE Build Service is sponsored by