Potential problems with strict-aliasing violations (libsinsp/fdinfo.cpp)
hhoffstaette opened this issue · 2 comments
Describe the bug
Gentoo QA complains about the following potential problems with strict-aliasing violations when doing naughty pointer things:
/tmp/portage/dev-debug/sysdig-0.38.1/work/libs-0.17.2/userspace/libsinsp/fdinfo.cpp: In member function 'virtual libsinsp::state::static_struct::field_infos sinsp_fdinfo::static_fields() const':
/tmp/portage/dev-debug/sysdig-0.38.1/work/libs-0.17.2/userspace/libsinsp/fdinfo.cpp:149:41: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
149 | define_static_field(ret, this, ((uint64_t*) &m_sockinfo.m_ipv6info.m_fields.m_sip)[0], "socket_ipv6_src_ip_low");
| ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/portage/dev-debug/sysdig-0.38.1/work/libs-0.17.2/userspace/libsinsp/fdinfo.cpp:151:41: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
151 | define_static_field(ret, this, ((uint64_t*) &m_sockinfo.m_ipv6info.m_fields.m_dip)[0], "socket_ipv6_dest_ip_low");
| ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/portage/dev-debug/sysdig-0.38.1/work/libs-0.17.2/userspace/libsinsp/fdinfo.cpp:159:41: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
159 | define_static_field(ret, this, ((uint64_t*) &m_sockinfo.m_ipv6serverinfo.m_ip)[0], "socket_ipv6_server_ip_low");
| ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
How to reproduce it
Building sysdig-0.38.x+libs-0.17.2 with gcc-13.3 and -Werror=strict-aliasing
should show this.
Expected behaviour
No QA violations (if possible)
Environment
Gentoo Linux, ~amd64 (testing)
- Kernel:
6.10.0 :)
- Installation method:
From source - I am the package maintainer
Additional context
I understand that accessing the union needs to accommodate the IPv6 address and have no immediate solution either. Sorry 😞
/cc @LucaGuerra our pointer hero!
Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale
.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close
.
Provide feedback via https://github.com/falcosecurity/community.
/lifecycle stale