|
140 | 140 |
|
141 | 141 |
|
142 | 142 | }}; |
143 | | - Size_t __strlen__(const Byte_t *str_) { |
| 143 | + Size_t __strlen__(const Byte_t *str_, const Size_t maxLen_) { |
144 | 144 |
|
145 | 145 | Size_t len = 0x0u; |
146 | 146 |
|
147 | | - if(__PointerIsNotNull__(str_)) { |
| 147 | + if(__PointerIsNotNull__(str_) && (maxLen_ > 0x0u)) { |
148 | 148 |
|
149 | | - while(CHAR_NULL != str_[len]) { |
| 149 | + while((len < maxLen_) && (CHAR_NULL != str_[len])) { |
150 | 150 |
|
151 | 151 | len++; |
152 | 152 | } |
|
177 | 177 |
|
178 | 178 | if(__PointerIsNotNull__(dest_) && __PointerIsNotNull__(src_) && (0x0u < destSize_)) { |
179 | 179 |
|
180 | | - while((CHAR_NULL != src_[i]) && (i < (destSize_ - 0x1u))) { |
| 180 | + while((i < (destSize_ - 0x1u)) && (CHAR_NULL != src_[i])) { |
181 | 181 |
|
182 | 182 | dest_[i] = src_[i]; |
183 | 183 |
|
|
239 | 239 | } |
240 | 240 |
|
241 | 241 |
|
242 | | - Base_t __strcmp__(const Byte_t *s1_, const Byte_t *s2_) { |
| 242 | + Base_t __strcmp__(const Byte_t *s1_, const Byte_t *s2_, const Size_t maxLen_) { |
243 | 243 |
|
244 | 244 | Size_t i = 0x0u; |
245 | 245 |
|
246 | | - if(__PointerIsNull__(s1_) || __PointerIsNull__(s2_)) { |
| 246 | + if(__PointerIsNull__(s1_) || __PointerIsNull__(s2_) || (0x0u == maxLen_)) { |
247 | 247 |
|
248 | 248 | return (0x0u); |
249 | 249 | } |
250 | 250 |
|
251 | | - while((CHAR_NULL != s1_[i]) && (CHAR_NULL != s2_[i])) { |
| 251 | + while((i < maxLen_) && (CHAR_NULL != s1_[i]) && (CHAR_NULL != s2_[i])) { |
252 | 252 |
|
253 | 253 | if(s1_[i] != s2_[i]) { |
254 | 254 |
|
|
258 | 258 | i++; |
259 | 259 | } |
260 | 260 |
|
261 | | - if(s1_[i] == s2_[i]) { |
| 261 | + if((i < maxLen_) && (s1_[i] == s2_[i])) { |
262 | 262 |
|
263 | 263 | return (0x0u); |
264 | 264 | } |
265 | 265 |
|
266 | | - return ((s1_[i] < s2_[i]) ? -0x1 : 0x1); |
| 266 | + return ((i < maxLen_) ? ((s1_[i] < s2_[i]) ? -0x1 : 0x1) : 0x0u); |
267 | 267 | } |
268 | 268 |
|
269 | 269 |
|
|
311 | 311 |
|
312 | 312 | if(__PointerIsNotNull__(dest_) && __PointerIsNotNull__(src_) && (0x0u < destSize_)) { |
313 | 313 |
|
314 | | - destLen = __strlen__(dest_); |
| 314 | + destLen = __strlen__(dest_, destSize_); |
315 | 315 |
|
316 | 316 | if(destLen < destSize_) { |
317 | 317 |
|
318 | | - while((CHAR_NULL != src_[i]) && ((destLen + i) < (destSize_ - 0x1u))) { |
| 318 | + while(((destLen + i) < (destSize_ - 0x1u)) && (CHAR_NULL != src_[i])) { |
319 | 319 |
|
320 | 320 | dest_[destLen + i] = src_[i]; |
321 | 321 |
|
|
340 | 340 | } |
341 | 341 |
|
342 | 342 |
|
343 | | - Byte_t * __strchr__(const Byte_t *str_, const Byte_t ch_) { |
| 343 | + Byte_t * __strchr__(const Byte_t *str_, const Byte_t ch_, const Size_t maxLen_) { |
344 | 344 |
|
345 | 345 | Size_t i = 0x0u; |
346 | 346 |
|
347 | | - if(__PointerIsNull__(str_)) { |
| 347 | + if(__PointerIsNull__(str_) || (0x0u == maxLen_)) { |
348 | 348 |
|
349 | 349 | return (null); |
350 | 350 | } |
351 | 351 |
|
352 | | - while(CHAR_NULL != str_[i]) { |
| 352 | + for(i = 0x0u; i < maxLen_; i++) { |
353 | 353 |
|
354 | 354 | if(str_[i] == ch_) { |
355 | 355 |
|
356 | 356 | return ((Byte_t *) &str_[i]); |
357 | 357 | } |
358 | 358 |
|
359 | | - i++; |
360 | | - } |
361 | | - |
362 | | - if(CHAR_NULL == ch_) { |
| 359 | + if(CHAR_NULL == str_[i]) { |
363 | 360 |
|
364 | | - return ((Byte_t *) &str_[i]); |
| 361 | + break; |
| 362 | + } |
365 | 363 | } |
366 | 364 |
|
367 | 365 | return (null); |
368 | 366 | } |
369 | 367 |
|
370 | 368 |
|
371 | | - Byte_t * __strrchr__(const Byte_t *str_, const Byte_t ch_) { |
| 369 | + Byte_t * __strrchr__(const Byte_t *str_, const Byte_t ch_, const Size_t maxLen_) { |
372 | 370 |
|
373 | 371 | Size_t len = 0x0u; |
374 | 372 |
|
375 | 373 | Size_t i = 0x0u; |
376 | 374 |
|
377 | | - if(__PointerIsNull__(str_)) { |
| 375 | + if(__PointerIsNull__(str_) || (0x0u == maxLen_)) { |
378 | 376 |
|
379 | 377 | return (null); |
380 | 378 | } |
381 | 379 |
|
382 | | - len = __strlen__(str_); |
| 380 | + len = __strlen__(str_, maxLen_); |
383 | 381 |
|
384 | 382 | for(i = len; i > 0x0u; i--) { |
385 | 383 |
|
|
389 | 387 | } |
390 | 388 | } |
391 | 389 |
|
392 | | - if((CHAR_NULL == ch_) && (len > 0x0u)) { |
| 390 | + if((CHAR_NULL == ch_) && (len < maxLen_)) { |
393 | 391 |
|
394 | 392 | return ((Byte_t *) &str_[len]); |
395 | 393 | } |
|
424 | 422 |
|
425 | 423 | if(__PointerIsNotNull__(dest_) && __PointerIsNotNull__(base_) && __PointerIsNotNull__(path_) && (0x0u != destSize_)) { |
426 | 424 |
|
427 | | - baseLen = __strlen__(base_); |
| 425 | + baseLen = __strlen__(base_, destSize_); |
428 | 426 |
|
429 | | - pathLen = __strlen__(path_); |
| 427 | + pathLen = __strlen__(path_, destSize_); |
430 | 428 |
|
431 | 429 | if((0x0u != baseLen) && (0x0u != pathLen)) { |
432 | 430 |
|
|
537 | 535 |
|
538 | 536 | if(__PointerIsNotNull__(path_) && (0x0u != pathSize_)) { |
539 | 537 |
|
540 | | - len = __strlen__(path_); |
| 538 | + len = __strlen__(path_, pathSize_); |
541 | 539 |
|
542 | 540 | if((0x0u != len) && (len < CONFIG_FS_MAX_PATH_LENGTH)) { |
543 | 541 |
|
|
595 | 593 |
|
596 | 594 | Size_t m = 0x0u; |
597 | 595 |
|
598 | | - segLen = __strlen__(segments[k]); |
| 596 | + segLen = __strlen__(segments[k], CONFIG_FS_MAX_PATH_LENGTH); |
599 | 597 |
|
600 | 598 | if(k > 0x0u) { |
601 | 599 |
|
|
667 | 665 |
|
668 | 666 | if(__PointerIsNotNull__(dest_) && __PointerIsNotNull__(path_) && (0x0u != destSize_)) { |
669 | 667 |
|
670 | | - len = __strlen__(path_); |
| 668 | + len = __strlen__(path_, destSize_); |
671 | 669 |
|
672 | 670 | if(0x0u == len) { |
673 | 671 |
|
|
757 | 755 |
|
758 | 756 | if(__PointerIsNotNull__(dest_) && __PointerIsNotNull__(path_) && (0x0u != destSize_)) { |
759 | 757 |
|
760 | | - len = __strlen__(path_); |
| 758 | + len = __strlen__(path_, destSize_); |
761 | 759 |
|
762 | 760 | if(0x0u == len) { |
763 | 761 |
|
|
1031 | 1029 |
|
1032 | 1030 | if(__PointerIsNotNull__(str_)) { |
1033 | 1031 |
|
1034 | | - len = __strlen__(str_); |
| 1032 | + len = __strlen__(str_, 0xFFFFu); |
1035 | 1033 |
|
1036 | 1034 | if(0x0u < len) { |
1037 | 1035 |
|
|
1319 | 1317 |
|
1320 | 1318 | for(i = 0x0u; __PointerIsNotNull__(commandTable[i].name) && !commandFound; i++) { |
1321 | 1319 |
|
1322 | | - if(0 == __strcmp__(cmdName, commandTable[i].name)) { |
| 1320 | + if(0 == __strcmp__(cmdName, commandTable[i].name, CONFIG_CONSOLE_MAX_COMMAND_LENGTH)) { |
1323 | 1321 |
|
1324 | 1322 | if(__PointerIsNotNull__(commandTable[i].handler)) { |
1325 | 1323 |
|
|
1811 | 1809 |
|
1812 | 1810 | pathBuilt = true; |
1813 | 1811 |
|
1814 | | - } else if(0 == __strcmp__(args_, (const Byte_t *) "..")) { |
| 1812 | + } else if(0 == __strcmp__(args_, (const Byte_t *) "..", CONFIG_CONSOLE_MAX_COMMAND_LENGTH)) { |
1815 | 1813 |
|
1816 | 1814 | if(OK(__path_dirname__(newPath, consoleState.currentWorkingDirectory, CONFIG_FS_MAX_PATH_LENGTH))) { |
1817 | 1815 |
|
|
0 commit comments