@@ -84,6 +84,9 @@ inline void _splitpath(const char* path, // Path Input
84
84
char * ext // Extension : Output
85
85
)
86
86
{
87
+ if (!path)
88
+ return EINVAL;
89
+
87
90
const char *p, *end;
88
91
89
92
if (drive)
@@ -279,11 +282,15 @@ typedef dirent DirEntryType;
279
282
// error code numbers from original MS strcpy_s return value
280
283
inline int strcpy_s (char *dest, size_t num, const char *source)
281
284
{
282
- if (!num)
283
- return EINVAL;
284
285
if (!dest)
285
286
return EINVAL;
286
287
288
+ if (0 == num)
289
+ {
290
+ dest[0 ] = ' \0 ' ;
291
+ return ERANGE;
292
+ }
293
+
287
294
if (!source)
288
295
{
289
296
dest[0 ] = ' \0 ' ;
@@ -305,16 +312,20 @@ inline int strcpy_s(char (&dest)[num], const char *source) { return strcpy_s(des
305
312
306
313
inline int strncpy_s (char * dest, size_t dst_size, const char * source, size_t num)
307
314
{
308
- if (!num)
309
- {
310
- if (dest && dst_size)
311
- *dest = 0 ;
315
+ if (!dest || (0 == dst_size))
316
+ return EINVAL;
312
317
318
+ if (0 == num)
319
+ {
320
+ dest[0 ] = ' \0 ' ;
313
321
return 0 ;
314
322
}
315
323
316
- if (!dest || !source || (0 == dst_size))
324
+ if (!source)
325
+ {
326
+ dest[0 ] = ' \0 ' ;
317
327
return EINVAL;
328
+ }
318
329
319
330
size_t i, end;
320
331
if (num < dst_size)
@@ -341,7 +352,7 @@ inline int strncpy_s(char (&dest)[dst_sz], const char * source, size_t num) { re
341
352
342
353
inline int strcat_s (char * dest, size_t num, const char * source)
343
354
{
344
- if (!dest || ( 0 == num) )
355
+ if (!dest)
345
356
return EINVAL;
346
357
347
358
if (!source)
@@ -369,15 +380,9 @@ inline int strcat_s(char * dest, size_t num, const char * source)
369
380
370
381
inline int strncat_s (char * dest, size_t num, const char * source, size_t count)
371
382
{
372
- if (!dest || ( 0 == num) )
383
+ if (!dest || !source )
373
384
return EINVAL;
374
385
375
- if (!source)
376
- {
377
- dest[0 ] = ' \0 ' ;
378
- return EINVAL;
379
- }
380
-
381
386
size_t i, j;
382
387
for (i = 0 ; i < num; i++)
383
388
{
@@ -394,7 +399,6 @@ inline int strncat_s(char * dest, size_t num, const char * source, size_t count)
394
399
}
395
400
}
396
401
397
- dest[0 ] = ' \0 ' ;
398
402
return ERANGE;
399
403
}
400
404
0 commit comments