Check if pointers are null before calling memset (#290)

This commit is contained in:
Shane Loretz 2018-08-31 15:31:53 -07:00 committed by GitHub
parent ceff88b974
commit 955c0c93da
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -211,21 +211,25 @@ rcl_wait_set_get_allocator(const rcl_wait_set_t * wait_set, rcl_allocator_t * al
#define SET_CLEAR(Type) \ #define SET_CLEAR(Type) \
do { \ do { \
memset( \ if (NULL != wait_set->Type ## s) { \
(void *)wait_set->Type ## s, \ memset( \
0, \ (void *)wait_set->Type ## s, \
sizeof(rcl_ ## Type ## _t *) * wait_set->size_of_ ## Type ## s); \ 0, \
wait_set->impl->Type ## _index = 0; \ sizeof(rcl_ ## Type ## _t *) * wait_set->size_of_ ## Type ## s); \
wait_set->impl->Type ## _index = 0; \
} \
} while (false) } while (false)
#define SET_CLEAR_RMW(Type, RMWStorage, RMWCount) \ #define SET_CLEAR_RMW(Type, RMWStorage, RMWCount) \
do { \ do { \
/* Also clear the rmw storage. */ \ if (NULL != wait_set->impl->RMWStorage) { \
memset( \ /* Also clear the rmw storage. */ \
wait_set->impl->RMWStorage, \ memset( \
0, \ wait_set->impl->RMWStorage, \
sizeof(void *) * wait_set->impl->RMWCount); \ 0, \
wait_set->impl->RMWCount = 0; \ sizeof(void *) * wait_set->impl->RMWCount); \
wait_set->impl->RMWCount = 0; \
} \
} while (false) } while (false)
#define SET_RESIZE(Type, ExtraDealloc, ExtraRealloc) \ #define SET_RESIZE(Type, ExtraDealloc, ExtraRealloc) \