diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | ChangeLog.ja | 5 | ||||
-rw-r--r-- | libsylph/codeconv.c | 9 |
3 files changed, 16 insertions, 3 deletions
@@ -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", |