diff options
author | Bruno Haible <bruno@clisp.org> | 2016-12-02 13:52:43 +0100 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2016-12-02 13:52:43 +0100 |
commit | d1a0a9fba05af9994caaa145045c1e11affc385d (patch) | |
tree | 2264947c09f7c503a7fca0d3c453598b768990d4 /lib/localcharset.c | |
parent | 349e4dea4f6713169d084e2b337f5e625bb79435 (diff) | |
download | gnulib-d1a0a9fba05af9994caaa145045c1e11affc385d.tar.gz |
localcharset: Avoid theoretical buffer overrun.
* lib/localcharset.c (locale_charset) [WINDOWS_NATIVE]: Don't use the
return value from setlocale if it would lead to a buffer overrun.
Diffstat (limited to 'lib/localcharset.c')
-rw-r--r-- | lib/localcharset.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/localcharset.c b/lib/localcharset.c index ff192f8592..5060aaad6c 100644 --- a/lib/localcharset.c +++ b/lib/localcharset.c @@ -507,7 +507,7 @@ locale_charset (void) current_locale = setlocale (LC_CTYPE, NULL); pdot = strrchr (current_locale, '.'); - if (pdot) + if (pdot && 2 + strlen (pdot + 1) + 1 <= sizeof (buf)) sprintf (buf, "CP%s", pdot + 1); else { |