|
|
4e62ec |
2007-06-08 Jatin Nansi <jnansi@redhat.com>
|
|
|
4e62ec |
|
|
|
4e62ec |
* config/locale/ieee_1003.1-2001/codecvt_specializations.h: Make sure
|
|
|
4e62ec |
_M_int_enc and _M_ext_enc are '\0' terminated.
|
|
|
4e62ec |
|
|
|
4e62ec |
--- libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h.jj 2007-02-23 21:29:34.000000000 +0100
|
|
|
4e62ec |
+++ libstdc++-v3/config/locale/ieee_1003.1-2001/codecvt_specializations.h 2007-07-19 14:20:20.000000000 +0200
|
|
|
4e62ec |
@@ -83,8 +83,10 @@
|
|
|
4e62ec |
int __ibom = 0, int __ebom = 0)
|
|
|
4e62ec |
: _M_in_desc(0), _M_out_desc(0), _M_ext_bom(__ebom), _M_int_bom(__ibom)
|
|
|
4e62ec |
{
|
|
|
4e62ec |
- strncpy(_M_int_enc, __int, _S_max_size);
|
|
|
4e62ec |
- strncpy(_M_ext_enc, __ext, _S_max_size);
|
|
|
4e62ec |
+ strncpy(_M_int_enc, __int, _S_max_size - 1);
|
|
|
4e62ec |
+ strncpy(_M_ext_enc, __ext, _S_max_size - 1);
|
|
|
4e62ec |
+ _M_int_enc[_S_max_size - 1] = '\0';
|
|
|
4e62ec |
+ _M_ext_enc[_S_max_size - 1] = '\0';
|
|
|
4e62ec |
_M_init();
|
|
|
4e62ec |
}
|
|
|
4e62ec |
|
|
|
4e62ec |
@@ -98,8 +100,10 @@
|
|
|
4e62ec |
// information.
|
|
|
4e62ec |
__enc_traits(const __enc_traits& __obj): _M_in_desc(0), _M_out_desc(0)
|
|
|
4e62ec |
{
|
|
|
4e62ec |
- strncpy(_M_int_enc, __obj._M_int_enc, _S_max_size);
|
|
|
4e62ec |
- strncpy(_M_ext_enc, __obj._M_ext_enc, _S_max_size);
|
|
|
4e62ec |
+ strncpy(_M_int_enc, __obj._M_int_enc, _S_max_size - 1);
|
|
|
4e62ec |
+ strncpy(_M_ext_enc, __obj._M_ext_enc, _S_max_size - 1);
|
|
|
4e62ec |
+ _M_int_enc[_S_max_size - 1] = '\0';
|
|
|
4e62ec |
+ _M_ext_enc[_S_max_size - 1] = '\0';
|
|
|
4e62ec |
_M_ext_bom = __obj._M_ext_bom;
|
|
|
4e62ec |
_M_int_bom = __obj._M_int_bom;
|
|
|
4e62ec |
_M_destroy();
|
|
|
4e62ec |
@@ -110,8 +114,10 @@
|
|
|
4e62ec |
__enc_traits&
|
|
|
4e62ec |
operator=(const __enc_traits& __obj)
|
|
|
4e62ec |
{
|
|
|
4e62ec |
- strncpy(_M_int_enc, __obj._M_int_enc, _S_max_size);
|
|
|
4e62ec |
- strncpy(_M_ext_enc, __obj._M_ext_enc, _S_max_size);
|
|
|
4e62ec |
+ strncpy(_M_int_enc, __obj._M_int_enc, _S_max_size - 1);
|
|
|
4e62ec |
+ strncpy(_M_ext_enc, __obj._M_ext_enc, _S_max_size - 1);
|
|
|
4e62ec |
+ _M_int_enc[_S_max_size - 1] = '\0';
|
|
|
4e62ec |
+ _M_ext_enc[_S_max_size - 1] = '\0';
|
|
|
4e62ec |
_M_ext_bom = __obj._M_ext_bom;
|
|
|
4e62ec |
_M_int_bom = __obj._M_int_bom;
|
|
|
4e62ec |
_M_destroy();
|