diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2023-04-26 08:23:04 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2023-04-26 08:23:04 +0200 |
commit | e301a74a6f111df4553b50b813a589589d1708b1 (patch) | |
tree | 4371ca8a7dd510c764c4c30219832b3a6b9980d6 /newlib | |
parent | c3798a2f7ddaedd91d5ea76a8adc5a4ee652cffd (diff) | |
download | newlib-e301a74a6f111df4553b50b813a589589d1708b1.zip newlib-e301a74a6f111df4553b50b813a589589d1708b1.tar.gz newlib-e301a74a6f111df4553b50b813a589589d1708b1.tar.bz2 |
Fix _REENT_EMERGENCY() if TLS is enabled
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.
Diffstat (limited to 'newlib')
-rw-r--r-- | newlib/libc/include/sys/reent.h | 2 | ||||
-rw-r--r-- | 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 6d8b005..c71f75d 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 51dfd1c..dc04cf3 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 |