mirror of
https://git.busybox.net/uClibc
synced 2025-05-08 23:02:28 +08:00
libc: add missing lock initialization in vswprintf
Unlike vsnprintf, vswprintf does not properly initialize locking elements of FILE structure, which in some unfortunate cases can result in lockups in _vfwprintf_internal. Interesting, the initialization code was removed in 2a915734a32c5aec9a6a76c13bcb074d30e64171 at the same time as it was added to vsnprintf. Signed-off-by: Maksim Rayskiy <mrayskiy@broadcom.com> Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
This commit is contained in:
parent
c61993f7e0
commit
18bf00f312
@ -39,6 +39,11 @@ int vswprintf(wchar_t *__restrict buf, size_t size,
|
||||
__INIT_MBSTATE(&(f.__state));
|
||||
#endif /* __STDIO_MBSTATE */
|
||||
|
||||
#ifdef __UCLIBC_HAS_THREADS__
|
||||
f.__user_locking = 1; /* Set user locking. */
|
||||
STDIO_INIT_MUTEX(f.__lock);
|
||||
#endif /* __UCLIBC_HAS_THREADS__ */
|
||||
|
||||
f.__nextopen = NULL;
|
||||
|
||||
if (size > ((SIZE_MAX - (size_t) buf)/sizeof(wchar_t))) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user