@@ -76,7 +76,7 @@ String::String(String &&rval)
76
76
String::String (char c)
77
77
{
78
78
init ();
79
- char buf[2 ];
79
+ char buf[2 ] = { 0 } ;
80
80
buf[0 ] = c;
81
81
buf[1 ] = 0 ;
82
82
*this = buf;
@@ -85,39 +85,39 @@ String::String(char c)
85
85
String::String (unsigned char value, unsigned char base)
86
86
{
87
87
init ();
88
- char buf[1 + 8 * sizeof (unsigned char )];
88
+ char buf[1 + 8 * sizeof (unsigned char )] = { 0 } ;
89
89
utoa (value, buf, base);
90
90
*this = buf;
91
91
}
92
92
93
93
String::String (int value, unsigned char base)
94
94
{
95
95
init ();
96
- char buf[2 + 8 * sizeof (int )];
96
+ char buf[2 + 8 * sizeof (int )] = { 0 } ;
97
97
itoa (value, buf, base);
98
98
*this = buf;
99
99
}
100
100
101
101
String::String (unsigned int value, unsigned char base)
102
102
{
103
103
init ();
104
- char buf[1 + 8 * sizeof (unsigned int )];
104
+ char buf[1 + 8 * sizeof (unsigned int )] = { 0 } ;
105
105
utoa (value, buf, base);
106
106
*this = buf;
107
107
}
108
108
109
109
String::String (long value, unsigned char base)
110
110
{
111
111
init ();
112
- char buf[2 + 8 * sizeof (long )];
112
+ char buf[2 + 8 * sizeof (long )] = { 0 } ;
113
113
ltoa (value, buf, base);
114
114
*this = buf;
115
115
}
116
116
117
117
String::String (unsigned long value, unsigned char base)
118
118
{
119
119
init ();
120
- char buf[1 + 8 * sizeof (unsigned long )];
120
+ char buf[1 + 8 * sizeof (unsigned long )] = { 0 } ;
121
121
ultoa (value, buf, base);
122
122
*this = buf;
123
123
}
@@ -126,6 +126,7 @@ String::String(float value, unsigned char decimalPlaces)
126
126
{
127
127
static size_t const FLOAT_BUF_SIZE = FLT_MAX_10_EXP + FLT_MAX_DECIMAL_PLACES + 1 /* '-' */ + 1 /* '.' */ + 1 /* '\0' */ ;
128
128
char *buf = (char *)rt_malloc (FLOAT_BUF_SIZE);
129
+ rt_memset (buf, 0 , FLOAT_BUF_SIZE);
129
130
init ();
130
131
decimalPlaces = min (decimalPlaces, FLT_MAX_DECIMAL_PLACES);
131
132
*this = dtostrf (value, (decimalPlaces + 2U ), decimalPlaces, buf);
@@ -136,6 +137,7 @@ String::String(double value, unsigned char decimalPlaces)
136
137
{
137
138
static size_t const DOUBLE_BUF_SIZE = DBL_MAX_10_EXP + DBL_MAX_DECIMAL_PLACES + 1 /* '-' */ + 1 /* '.' */ + 1 /* '\0' */ ;
138
139
char *buf = (char *)rt_malloc (DOUBLE_BUF_SIZE);
140
+ rt_memset (buf, 0 , DOUBLE_BUF_SIZE);
139
141
init ();
140
142
decimalPlaces = min (decimalPlaces, DBL_MAX_DECIMAL_PLACES);
141
143
*this = dtostrf (value, (decimalPlaces + 2U ), decimalPlaces, buf);
@@ -295,35 +297,35 @@ bool String::concat(char c)
295
297
296
298
bool String::concat (unsigned char num)
297
299
{
298
- char buf[1 + 3 * sizeof (unsigned char )];
300
+ char buf[1 + 3 * sizeof (unsigned char )] = { 0 } ;
299
301
itoa (num, buf, 10 );
300
302
return concat (buf);
301
303
}
302
304
303
305
bool String::concat (int num)
304
306
{
305
- char buf[2 + 3 * sizeof (int )];
307
+ char buf[2 + 3 * sizeof (int )] = { 0 } ;
306
308
itoa (num, buf, 10 );
307
309
return concat (buf);
308
310
}
309
311
310
312
bool String::concat (unsigned int num)
311
313
{
312
- char buf[1 + 3 * sizeof (unsigned int )];
314
+ char buf[1 + 3 * sizeof (unsigned int )] = { 0 } ;
313
315
utoa (num, buf, 10 );
314
316
return concat (buf);
315
317
}
316
318
317
319
bool String::concat (long num)
318
320
{
319
- char buf[2 + 3 * sizeof (long )];
321
+ char buf[2 + 3 * sizeof (long )] = { 0 } ;
320
322
ltoa (num, buf, 10 );
321
323
return concat (buf);
322
324
}
323
325
324
326
bool String::concat (unsigned long num)
325
327
{
326
- char buf[1 + 3 * sizeof (unsigned long )];
328
+ char buf[1 + 3 * sizeof (unsigned long )] = { 0 } ;
327
329
ultoa (num, buf, 10 );
328
330
return concat (buf);
329
331
}
@@ -498,7 +500,7 @@ bool String::startsWith( const String &s2, unsigned int offset ) const
498
500
499
501
bool String::endsWith ( const String &s2 ) const
500
502
{
501
- if ( len < s2.len || !buffer || !s2.buffer ) return false ;
503
+ if (len < s2.len || !buffer || !s2.buffer ) return false ;
502
504
return strcmp (&buffer[len - s2.len ], s2.buffer ) == 0 ;
503
505
}
504
506
0 commit comments