diff --git a/userspace/libsinsp/fdinfo.h b/userspace/libsinsp/fdinfo.h index ccfa508650..03737bf4d4 100644 --- a/userspace/libsinsp/fdinfo.h +++ b/userspace/libsinsp/fdinfo.h @@ -269,8 +269,8 @@ class SINSP_PUBLIC sinsp_fdinfo inline void set_unix_info(uint8_t* packed_data) { - m_sockinfo.m_unixinfo.m_fields.m_source = *(uint64_t *)(packed_data + 1); - m_sockinfo.m_unixinfo.m_fields.m_dest = *(uint64_t *)(packed_data + 9); + memcpy(&m_sockinfo.m_unixinfo.m_fields.m_source, packed_data + 1, sizeof(uint64_t)); + memcpy(&m_sockinfo.m_unixinfo.m_fields.m_dest, packed_data + 9, sizeof(uint64_t)); } /*! diff --git a/userspace/libsinsp/sinsp_filtercheck_event.cpp b/userspace/libsinsp/sinsp_filtercheck_event.cpp index 28d3787ef0..e2bc9e08e0 100644 --- a/userspace/libsinsp/sinsp_filtercheck_event.cpp +++ b/userspace/libsinsp/sinsp_filtercheck_event.cpp @@ -634,9 +634,7 @@ uint8_t* sinsp_filter_check_event::extract_error_count(sinsp_evt *evt, OUT uint3 if(pi != NULL) { - ASSERT(pi->m_len == sizeof(uint64_t)); - - int64_t res = *(int64_t*)pi->m_val; + int64_t res = pi->as(); if(res < 0) { m_u32val = 1; @@ -654,9 +652,7 @@ uint8_t* sinsp_filter_check_event::extract_error_count(sinsp_evt *evt, OUT uint3 if(pi != NULL) { - ASSERT(pi->m_len == sizeof(uint64_t)); - - int64_t res = *(int64_t*)pi->m_val; + int64_t res = pi->as(); if(res < 0) { m_u32val = 1; @@ -1202,9 +1198,7 @@ uint8_t* sinsp_filter_check_event::extract(sinsp_evt *evt, OUT uint32_t* len, bo if(pi != NULL) { - ASSERT(pi->m_len == sizeof(int64_t)); - - int64_t res = *(int64_t*)pi->m_val; + int64_t res = pi->as(); if(res >= 0) { @@ -1232,7 +1226,7 @@ uint8_t* sinsp_filter_check_event::extract(sinsp_evt *evt, OUT uint32_t* len, bo pi = evt->get_param_by_name("fd"); if (pi) { - int64_t res = *(int64_t*)pi->m_val; + int64_t res = pi->as(); if(res >= 0) {