aboutsummaryrefslogtreecommitdiffstats
path: root/main/musl/0001-fix-uselocale-locale_t-0-to-not-modify-locale.patch
blob: 2e4370b555b9ddf7763a7a590f6ee62ac9f85436 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
From bf8130a2843909df0d14cce5b5149cde35f887ac Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
Date: Fri, 5 Jun 2015 10:39:42 +0300
Subject: [PATCH] fix uselocale((locale_t)0) to not modify locale

commit 68630b55c0c7 made the new locale to be assigned unconditonally
resulting in crashes later on.
---
 src/locale/uselocale.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/locale/uselocale.c b/src/locale/uselocale.c
index b70a0c1..0fc5ecb 100644
--- a/src/locale/uselocale.c
+++ b/src/locale/uselocale.c
@@ -8,9 +8,7 @@ locale_t __uselocale(locale_t new)
 	locale_t old = self->locale;
 	locale_t global = &libc.global_locale;
 
-	if (new == LC_GLOBAL_LOCALE) new = global;
-
-	self->locale = new;
+	if (new) self->locale = new == LC_GLOBAL_LOCALE ? global : new;
 
 	return old == global ? LC_GLOBAL_LOCALE : old;
 }
-- 
2.4.2