Re: [PATCH] Fix _REENT_EMERGENCY() if TLS is enabled
Corinna Vinschen <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <[email protected]> |
On Apr 26 08:26, Sebastian Huber wrote: > 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 LGTM Thanks, Corinna