[PATCH] Fix _REENT_EMERGENCY() if TLS is enabled

Sebastian Huber <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
If the thread-local storage (TLS) support was enabled, the _REENT_EMERGENCY()
object had the wrong size.  It must be a buffer of length _REENT_EMERGENCY_SIZE
and not just a single character.
---
 newlib/libc/include/sys/reent.h | 2 +-
 newlib/libc/stdio/tmpnam.c      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/newlib/libc/include/sys/reent.h b/newlib/libc/include/sys/reent.h
index 6d8b005b2b..c71f75dbc2 100644
--- a/newlib/libc/include/sys/reent.h
+++ b/newlib/libc/include/sys/reent.h
@@ -812,7 +812,7 @@ extern _Thread_local int _tls_cvtlen;
 #define _REENT_CVTLEN(_ptr) (_tls_cvtlen)
 extern _Thread_local void (*_tls_cleanup)(struct _reent *);
 #define _REENT_CLEANUP(_ptr) (_tls_cleanup)
-extern _Thread_local char _tls_emergency;
+extern _Thread_local char _tls_emergency[_REENT_EMERGENCY_SIZE];
 #define _REENT_EMERGENCY(_ptr) (_tls_emergency)
 extern _Thread_local int _tls_errno;
 #define _REENT_ERRNO(_ptr) (_tls_errno)
diff --git a/newlib/libc/stdio/tmpnam.c b/newlib/libc/stdio/tmpnam.c
index 51dfd1cea6..dc04cf3f6c 100644
--- a/newlib/libc/stdio/tmpnam.c
+++ b/newlib/libc/stdio/tmpnam.c
@@ -84,7 +84,7 @@ The global pointer <<environ>> is also required.
 
 #ifdef _REENT_THREAD_LOCAL
 _Thread_local int _tls_inc;
-_Thread_local char _tls_emergency;
+_Thread_local char _tls_emergency[_REENT_EMERGENCY_SIZE];
 #endif
 
 /* Try to open the file specified, if it can't be opened then try
-- 
2.35.3
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.