diff options
| author | HiFiPhile <[email protected]> | 2025-10-11 16:53:35 +0200 |
|---|---|---|
| committer | HiFiPhile <[email protected]> | 2025-10-11 16:53:35 +0200 |
| commit | b9b1c6432a7be43297afb0a75621ece5fc63f3a5 (patch) | |
| tree | cd7639e4b3a5782fb78f20a3b96f24d69577508c /src/common | |
| parent | e0a589cdcae6eaf790d05712a6f2b8c0352fb5fd (diff) | |
| parent | 2e29d1c60d119b2aa71e36d0c1ac2a383e333076 (diff) | |
Merge branch 'master' into dwc2_iso_incomp
Diffstat (limited to 'src/common')
| -rw-r--r-- | src/common/tusb_common.h | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/src/common/tusb_common.h b/src/common/tusb_common.h index 9c4699362..6393652a3 100644 --- a/src/common/tusb_common.h +++ b/src/common/tusb_common.h @@ -35,6 +35,7 @@ // Macros Helper //--------------------------------------------------------------------+ #define TU_ARRAY_SIZE(_arr) ( sizeof(_arr) / sizeof(_arr[0]) ) +#define TU_FIELD_SIZE(_type, _field) (sizeof(((_type *)0)->_field)) #define TU_MIN(_x, _y) ( ( (_x) < (_y) ) ? (_x) : (_y) ) #define TU_MAX(_x, _y) ( ( (_x) > (_y) ) ? (_x) : (_y) ) #define TU_DIV_CEIL(n, d) (((n) + (d) - 1) / (d)) @@ -108,20 +109,35 @@ extern void* tusb_app_phys_to_virt(void *phys_addr); // This is a backport of memset_s from c11 TU_ATTR_ALWAYS_INLINE static inline int tu_memset_s(void *dest, size_t destsz, int ch, size_t count) { - // TODO may check if desst and src is not NULL - if ( count > destsz ) { + // Validate parameters + if (dest == NULL) { return -1; } + + if (count > destsz) { + return -1; + } + memset(dest, ch, count); return 0; } // This is a backport of memcpy_s from c11 TU_ATTR_ALWAYS_INLINE static inline int tu_memcpy_s(void *dest, size_t destsz, const void *src, size_t count) { - // TODO may check if desst and src is not NULL - if ( count > destsz ) { + // Validate parameters + if (dest == NULL) { return -1; } + + // For memcpy, src may be NULL only if count == 0. Reject otherwise. + if (src == NULL && count != 0) { + return -1; + } + + if (count > destsz) { + return -1; + } + memcpy(dest, src, count); return 0; } |
