@@ -415,8 +415,10 @@ void memcpy_and_pad(void *dest, size_t dest_len, const void *src, size_t count,
415
415
*/
416
416
#define strtomem_pad (dest , src , pad ) do { \
417
417
const size_t _dest_len = __must_be_byte_array(dest) + \
418
+ __must_be_noncstr(dest) + \
418
419
ARRAY_SIZE(dest); \
419
- const size_t _src_len = __builtin_object_size(src, 1); \
420
+ const size_t _src_len = __must_be_cstr(src) + \
421
+ __builtin_object_size(src, 1); \
420
422
\
421
423
BUILD_BUG_ON(!__builtin_constant_p(_dest_len) || \
422
424
_dest_len == (size_t)-1); \
@@ -439,8 +441,10 @@ void memcpy_and_pad(void *dest, size_t dest_len, const void *src, size_t count,
439
441
*/
440
442
#define strtomem (dest , src ) do { \
441
443
const size_t _dest_len = __must_be_byte_array(dest) + \
444
+ __must_be_noncstr(dest) + \
442
445
ARRAY_SIZE(dest); \
443
- const size_t _src_len = __builtin_object_size(src, 1); \
446
+ const size_t _src_len = __must_be_cstr(src) + \
447
+ __builtin_object_size(src, 1); \
444
448
\
445
449
BUILD_BUG_ON(!__builtin_constant_p(_dest_len) || \
446
450
_dest_len == (size_t)-1); \
@@ -459,8 +463,10 @@ void memcpy_and_pad(void *dest, size_t dest_len, const void *src, size_t count,
459
463
*/
460
464
#define memtostr (dest , src ) do { \
461
465
const size_t _dest_len = __must_be_byte_array(dest) + \
466
+ __must_be_cstr(dest) + \
462
467
ARRAY_SIZE(dest); \
463
- const size_t _src_len = __builtin_object_size(src, 1); \
468
+ const size_t _src_len = __must_be_noncstr(src) + \
469
+ __builtin_object_size(src, 1); \
464
470
const size_t _src_chars = strnlen(src, _src_len); \
465
471
const size_t _copy_len = min(_dest_len - 1, _src_chars); \
466
472
\
@@ -485,8 +491,10 @@ void memcpy_and_pad(void *dest, size_t dest_len, const void *src, size_t count,
485
491
*/
486
492
#define memtostr_pad (dest , src ) do { \
487
493
const size_t _dest_len = __must_be_byte_array(dest) + \
494
+ __must_be_cstr(dest) + \
488
495
ARRAY_SIZE(dest); \
489
- const size_t _src_len = __builtin_object_size(src, 1); \
496
+ const size_t _src_len = __must_be_noncstr(src) + \
497
+ __builtin_object_size(src, 1); \
490
498
const size_t _src_chars = strnlen(src, _src_len); \
491
499
const size_t _copy_len = min(_dest_len - 1, _src_chars); \
492
500
\
0 commit comments