aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2007-08-23 01:53:04 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2007-08-23 01:53:04 +0000
commit593ed51550a14c6ccbcbc279b899e4ba2100f94a (patch)
tree9e6d32ca0c5ba19cf047965bd1b18e27683c7e71
parent1af4d68a52c15c008b3e9d50d21348d509dd0c26 (diff)
conv_get_current_locale(): fixed the case when cur_locale is null string.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@1881 ee746299-78ed-0310-b773-934348b2243d
-rw-r--r--ChangeLog5
-rw-r--r--ChangeLog.ja5
-rw-r--r--libsylph/codeconv.c9
3 files changed, 16 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 977c97b3..16487667 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2007-08-23
+ * libsylph/codeconv.c: conv_get_current_locale(): fixed the case
+ when cur_locale = "" (thanks to Elohin Igor').
+
+2007-08-23
+
* src/inc.c: inc_put_error(): fixed format string vulnerability
(thanks to Ulf Harnhammar, Secunia Research).
diff --git a/ChangeLog.ja b/ChangeLog.ja
index 6f664dfa..7c2e5a8e 100644
--- a/ChangeLog.ja
+++ b/ChangeLog.ja
@@ -1,5 +1,10 @@
2007-08-23
+ * libsylph/codeconv.c: conv_get_current_locale(): cur_locale = ""
+ の場合を修正(Elohin Igor' さん thanks)。
+
+2007-08-23
+
* src/inc.c: inc_put_error(): フォーマット文字列脆弱性を修正
(Ulf Harnhammar (Secunia Research) さん thanks)。
diff --git a/libsylph/codeconv.c b/libsylph/codeconv.c
index 13de2baf..6132d806 100644
--- a/libsylph/codeconv.c
+++ b/libsylph/codeconv.c
@@ -2054,9 +2054,12 @@ const gchar *conv_get_current_locale(void)
cur_locale = g_win32_getlocale();
#else
cur_locale = g_getenv("LC_ALL");
- if (!cur_locale) cur_locale = g_getenv("LC_CTYPE");
- if (!cur_locale) cur_locale = g_getenv("LANG");
- if (!cur_locale) cur_locale = setlocale(LC_CTYPE, NULL);
+ if (!cur_locale || *cur_locale == '\0')
+ cur_locale = g_getenv("LC_CTYPE");
+ if (!cur_locale || *cur_locale == '\0')
+ cur_locale = g_getenv("LANG");
+ if (!cur_locale || *cur_locale == '\0')
+ cur_locale = setlocale(LC_CTYPE, NULL);
#endif /* G_OS_WIN32 */
debug_print("current locale: %s\n",