-
Notifications
You must be signed in to change notification settings - Fork 15.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gcc 9 -Warray-bounds warnings about memset() in generated code #7140
Comments
Hi, I got the same issue, protobuf 3.11.4 and gcc 9.2.1. Thanks, |
As work-around we're using
|
This appears to be the offending memset:
|
@ahmedtd Yes it is. For me this warning is legit as the memset is writing out of the struct size passed as src*. |
I think doing the memset (and memcpy above) in terms of the individual field names is undefined behavior. This is how they fixed the problem in the Linux kernel: do the memsets in term of offsets within the parent object. That requires offsetof, which isn't currently available in the generated pb.cc file (needs I'm not sure if it's OK to add that dependency. |
My security tool finds security vulnerable for *.pb.cc files using memcpy/ memset, and it has security concern that the buffer copy does not check size and will lead to buffer overflow. |
Also affected on multiple arm environments: armv7a-unknown-linux-gnuebihf- and armv6j-unknown-linux-ucliceabihf- (both Gentoo) compiling at -O3 (-O2 doesn't issue the warning for me). Both gcc-9.3.0. |
The same warning for gcc (Ubuntu 9.3.0-10ubuntu2) 9.3.0 |
Should be fixed by #7913. |
* fix protobuf warnings as suggested in protocolbuffers/protobuf#7140 (comment) * Silent protobuf warning for used parameter Silet also previous warning for array bound when building test program * silent warning also when building test traget EmitFromROOT * add comment on turning-off the warnings from protibuf
Remaining 4 warnings are because of protobuf auto-generated files due to a protobuf bug which is fixed at v3.14 and the warnings will be disappear once the or-tools version is increased to v9+ which upgrades the protobuf dependency. protocolbuffers/protobuf#7140 (comment)
Remaining 4 warnings are because of protobuf auto-generated files due to a protobuf bug which is fixed at v3.14 and the warnings will be disappear once the or-tools version is increased to v9+ which upgrades the protobuf dependency. protocolbuffers/protobuf#7140 (comment)
- protocolbuffers/protobuf#7140 Signed-off-by: Christopher M. Cantalupo <[email protected]>
- protocolbuffers/protobuf#7140 Signed-off-by: Christopher M. Cantalupo <[email protected]>
- protocolbuffers/protobuf#7140 Signed-off-by: Christopher M. Cantalupo <[email protected]>
- protocolbuffers/protobuf#7140 Signed-off-by: Christopher M. Cantalupo <[email protected]>
- protocolbuffers/protobuf#7140 Signed-off-by: Christopher M. Cantalupo <[email protected]>
- protocolbuffers/protobuf#7140 Signed-off-by: Christopher M. Cantalupo <[email protected]>
- protocolbuffers/protobuf#7140 Signed-off-by: Christopher M. Cantalupo <[email protected]>
- protocolbuffers/protobuf#7140 Signed-off-by: Christopher M. Cantalupo <[email protected]>
- protocolbuffers/protobuf#7140 Signed-off-by: Christopher M. Cantalupo <[email protected]>
- protocolbuffers/protobuf#7140 Signed-off-by: Christopher M. Cantalupo <[email protected]>
- protocolbuffers/protobuf#7140 Signed-off-by: Christopher M. Cantalupo <[email protected]>
- protocolbuffers/protobuf#7140 Signed-off-by: Christopher M. Cantalupo <[email protected]>
- protocolbuffers/protobuf#7140 Signed-off-by: Christopher M. Cantalupo <[email protected]>
- protocolbuffers/protobuf#7140 Signed-off-by: Christopher M. Cantalupo <[email protected]>
- protocolbuffers/protobuf#7140 Signed-off-by: Christopher M. Cantalupo <[email protected]>
- protocolbuffers/protobuf#7140 Signed-off-by: Christopher M. Cantalupo <[email protected]>
- protocolbuffers/protobuf#7140 Signed-off-by: Christopher M. Cantalupo <[email protected]>
- protocolbuffers/protobuf#7140 Signed-off-by: Christopher M. Cantalupo <[email protected]>
- protocolbuffers/protobuf#7140 Signed-off-by: Christopher M. Cantalupo <[email protected]>
- First pass at creating a prototype buffer definition for DBus methods used by ServiceIOGroup - First draft of GEOPM grpc service - Generate protobuffer files with autogen.sh - Add some configure scripts for grpc. - Add grpc requirements to spec file - Add protoc-gen.sh to tarball - Fixes geopm#2775 - Use LOCAL_TCP not UDS because python support server context in UDS is limited - Abstract use of GLib and posix pid interfaces. This will enable network peer ID to be used in place of PID for tracking clients - Derive the client_id from the gRPC server context: use number in peer name following last colon - TODO: Write unit tests - TODO: Run integration tests for controls - TODO: Add documentation - TODO: Implement session closure when client connection ends - Get working in containers - Add k8 manifest and Dockerfile - TODO: Dockerfile currently points to my debug builds - Switch back to user provided credentials + Although we are able to get the peer name from the context it is not really possible to go from network peer to linux PID + We will have to switch back to a UDS approach and implement OpenSession and CloseSession RPCs in either C++ or golang where getting the UDS credentials from the server context is possible (cannot see a way in python) - Switch back to UDS socket - Add a seccomp for all discovered syscalls - Disable PID tracking when running inside of a container + This is a stopgap solution. + Need to get credentials from UDS + More pressingly, we need to be able to convert between PID namespaces. - Move seccomp files into container image - Clean up client test - Remove seccomp sections of manifest - Add some documentation about the k8 files - Remove unnessesary build requires from spec file - Add rust proxy server to tranfer UDS credentials - Forward requests to python based geopmd server - Transfer UDS credentials through the SessionKey message - Switch geopmdpy to use private port for gprc comms - Remove use of google Empty protobuf + Cannot seem to properly import it into rust - update .gitignore - Add a mutex to protect the client object - Add build scripts for rust - Fix issue with stop batch (missing session key) - Add a vendor archive to support rust build in obs - Fixup protobuf deps - Remove extra crate files from install - Switch socket paths to end in ".sock" to make tonic happy - Update proxy server to use correct pattern for UDS sockets based on tonic examplue - Fix permissions on public socket - Remove modification to geopm.seervice spec file: do not use grpc flag - Got basic read test working with credential forwarding - Update docker file to use Tumbleweed distro (required for latest Rust) - Remove the seccomp files - Do not seem to be required on the k8 system under test. - May be missing system calls, only ran strace on one test. - Add util-linux to Requires section of spec file - Create the user and groups on the server node and share the PID namespace - Get rid of known issue documentation (no longer a known issue) - Restrict umask when creating secure UDS - Add missing "not" in comment - Add Header to CSV - Add more documentation about the Kubernetes demo - Clean up k8 documentation in README - Add more information and links to experimental branch description - Add control loop feature to cloud readme - Add link to upstream issue in gRPC - Update README now that work around for grpcio v1.30.2 is in place - Merge k8 directory service readme and service Dockerfile from cloud branch - Fixup control and rules files for grpc - Sync grpc interface with app profiling api - Add new build requirements to github workflow - Add gRPC plumbing for PlatformRestoreControl - Do not build cargo index in home + Build the index in $(abs_builddir) instead. - Revert client_registry changes - Disable array bounds checking due to issue with protoc generated code + protocolbuffers/protobuf#7140 - Switch geopm systemd service to using grpc in unit file - Periodically close inactive sessions in the grpc server - Change batch server from fork to subprocess - Remove BatchServerTest entirely
- First pass at creating a prototype buffer definition for DBus methods used by ServiceIOGroup - First draft of GEOPM grpc service - Generate protobuffer files with autogen.sh - Add some configure scripts for grpc. - Add grpc requirements to spec file - Add protoc-gen.sh to tarball - Fixes geopm#2775 - Use LOCAL_TCP not UDS because python support server context in UDS is limited - Abstract use of GLib and posix pid interfaces. This will enable network peer ID to be used in place of PID for tracking clients - Derive the client_id from the gRPC server context: use number in peer name following last colon - TODO: Write unit tests - TODO: Run integration tests for controls - TODO: Add documentation - TODO: Implement session closure when client connection ends - Get working in containers - Add k8 manifest and Dockerfile - TODO: Dockerfile currently points to my debug builds - Switch back to user provided credentials + Although we are able to get the peer name from the context it is not really possible to go from network peer to linux PID + We will have to switch back to a UDS approach and implement OpenSession and CloseSession RPCs in either C++ or golang where getting the UDS credentials from the server context is possible (cannot see a way in python) - Switch back to UDS socket - Add a seccomp for all discovered syscalls - Disable PID tracking when running inside of a container + This is a stopgap solution. + Need to get credentials from UDS + More pressingly, we need to be able to convert between PID namespaces. - Move seccomp files into container image - Clean up client test - Remove seccomp sections of manifest - Add some documentation about the k8 files - Remove unnessesary build requires from spec file - Add rust proxy server to tranfer UDS credentials - Forward requests to python based geopmd server - Transfer UDS credentials through the SessionKey message - Switch geopmdpy to use private port for gprc comms - Remove use of google Empty protobuf + Cannot seem to properly import it into rust - update .gitignore - Add a mutex to protect the client object - Add build scripts for rust - Fix issue with stop batch (missing session key) - Add a vendor archive to support rust build in obs - Fixup protobuf deps - Remove extra crate files from install - Switch socket paths to end in ".sock" to make tonic happy - Update proxy server to use correct pattern for UDS sockets based on tonic examplue - Fix permissions on public socket - Remove modification to geopm.seervice spec file: do not use grpc flag - Got basic read test working with credential forwarding - Update docker file to use Tumbleweed distro (required for latest Rust) - Remove the seccomp files - Do not seem to be required on the k8 system under test. - May be missing system calls, only ran strace on one test. - Add util-linux to Requires section of spec file - Create the user and groups on the server node and share the PID namespace - Get rid of known issue documentation (no longer a known issue) - Restrict umask when creating secure UDS - Add missing "not" in comment - Add Header to CSV - Add more documentation about the Kubernetes demo - Clean up k8 documentation in README - Add more information and links to experimental branch description - Add control loop feature to cloud readme - Add link to upstream issue in gRPC - Update README now that work around for grpcio v1.30.2 is in place - Merge k8 directory service readme and service Dockerfile from cloud branch - Fixup control and rules files for grpc - Sync grpc interface with app profiling api - Add new build requirements to github workflow - Add gRPC plumbing for PlatformRestoreControl - Do not build cargo index in home + Build the index in $(abs_builddir) instead. - Revert client_registry changes - Disable array bounds checking due to issue with protoc generated code + protocolbuffers/protobuf#7140 - Switch geopm systemd service to using grpc in unit file - Periodically close inactive sessions in the grpc server - Change batch server from fork to subprocess - Remove BatchServerTest entirely
- First pass at creating a prototype buffer definition for DBus methods used by ServiceIOGroup - First draft of GEOPM grpc service - Generate protobuffer files with autogen.sh - Add some configure scripts for grpc. - Add grpc requirements to spec file - Add protoc-gen.sh to tarball - Fixes geopm#2775 - Use LOCAL_TCP not UDS because python support server context in UDS is limited - Abstract use of GLib and posix pid interfaces. This will enable network peer ID to be used in place of PID for tracking clients - Derive the client_id from the gRPC server context: use number in peer name following last colon - TODO: Write unit tests - TODO: Run integration tests for controls - TODO: Add documentation - TODO: Implement session closure when client connection ends - Get working in containers - Add k8 manifest and Dockerfile - TODO: Dockerfile currently points to my debug builds - Switch back to user provided credentials + Although we are able to get the peer name from the context it is not really possible to go from network peer to linux PID + We will have to switch back to a UDS approach and implement OpenSession and CloseSession RPCs in either C++ or golang where getting the UDS credentials from the server context is possible (cannot see a way in python) - Switch back to UDS socket - Add a seccomp for all discovered syscalls - Disable PID tracking when running inside of a container + This is a stopgap solution. + Need to get credentials from UDS + More pressingly, we need to be able to convert between PID namespaces. - Move seccomp files into container image - Clean up client test - Remove seccomp sections of manifest - Add some documentation about the k8 files - Remove unnessesary build requires from spec file - Add rust proxy server to tranfer UDS credentials - Forward requests to python based geopmd server - Transfer UDS credentials through the SessionKey message - Switch geopmdpy to use private port for gprc comms - Remove use of google Empty protobuf + Cannot seem to properly import it into rust - update .gitignore - Add a mutex to protect the client object - Add build scripts for rust - Fix issue with stop batch (missing session key) - Add a vendor archive to support rust build in obs - Fixup protobuf deps - Remove extra crate files from install - Switch socket paths to end in ".sock" to make tonic happy - Update proxy server to use correct pattern for UDS sockets based on tonic examplue - Fix permissions on public socket - Remove modification to geopm.seervice spec file: do not use grpc flag - Got basic read test working with credential forwarding - Update docker file to use Tumbleweed distro (required for latest Rust) - Remove the seccomp files - Do not seem to be required on the k8 system under test. - May be missing system calls, only ran strace on one test. - Add util-linux to Requires section of spec file - Create the user and groups on the server node and share the PID namespace - Get rid of known issue documentation (no longer a known issue) - Restrict umask when creating secure UDS - Add missing "not" in comment - Add Header to CSV - Add more documentation about the Kubernetes demo - Clean up k8 documentation in README - Add more information and links to experimental branch description - Add control loop feature to cloud readme - Add link to upstream issue in gRPC - Update README now that work around for grpcio v1.30.2 is in place - Merge k8 directory service readme and service Dockerfile from cloud branch - Fixup control and rules files for grpc - Sync grpc interface with app profiling api - Add new build requirements to github workflow - Add gRPC plumbing for PlatformRestoreControl - Do not build cargo index in home + Build the index in $(abs_builddir) instead. - Revert client_registry changes - Disable array bounds checking due to issue with protoc generated code + protocolbuffers/protobuf#7140 - Switch geopm systemd service to using grpc in unit file - Periodically close inactive sessions in the grpc server - Change batch server from fork to subprocess - Remove BatchServerTest entirely
- First pass at creating a prototype buffer definition for DBus methods used by ServiceIOGroup - First draft of GEOPM grpc service - Generate protobuffer files with autogen.sh - Add some configure scripts for grpc. - Add grpc requirements to spec file - Add protoc-gen.sh to tarball - Fixes geopm#2775 - Use LOCAL_TCP not UDS because python support server context in UDS is limited - Abstract use of GLib and posix pid interfaces. This will enable network peer ID to be used in place of PID for tracking clients - Derive the client_id from the gRPC server context: use number in peer name following last colon - TODO: Write unit tests - TODO: Run integration tests for controls - TODO: Add documentation - TODO: Implement session closure when client connection ends - Get working in containers - Add k8 manifest and Dockerfile - TODO: Dockerfile currently points to my debug builds - Switch back to user provided credentials + Although we are able to get the peer name from the context it is not really possible to go from network peer to linux PID + We will have to switch back to a UDS approach and implement OpenSession and CloseSession RPCs in either C++ or golang where getting the UDS credentials from the server context is possible (cannot see a way in python) - Switch back to UDS socket - Add a seccomp for all discovered syscalls - Disable PID tracking when running inside of a container + This is a stopgap solution. + Need to get credentials from UDS + More pressingly, we need to be able to convert between PID namespaces. - Move seccomp files into container image - Clean up client test - Remove seccomp sections of manifest - Add some documentation about the k8 files - Remove unnessesary build requires from spec file - Add rust proxy server to tranfer UDS credentials - Forward requests to python based geopmd server - Transfer UDS credentials through the SessionKey message - Switch geopmdpy to use private port for gprc comms - Remove use of google Empty protobuf + Cannot seem to properly import it into rust - update .gitignore - Add a mutex to protect the client object - Add build scripts for rust - Fix issue with stop batch (missing session key) - Add a vendor archive to support rust build in obs - Fixup protobuf deps - Remove extra crate files from install - Switch socket paths to end in ".sock" to make tonic happy - Update proxy server to use correct pattern for UDS sockets based on tonic examplue - Fix permissions on public socket - Remove modification to geopm.seervice spec file: do not use grpc flag - Got basic read test working with credential forwarding - Update docker file to use Tumbleweed distro (required for latest Rust) - Remove the seccomp files - Do not seem to be required on the k8 system under test. - May be missing system calls, only ran strace on one test. - Add util-linux to Requires section of spec file - Create the user and groups on the server node and share the PID namespace - Get rid of known issue documentation (no longer a known issue) - Restrict umask when creating secure UDS - Add missing "not" in comment - Add Header to CSV - Add more documentation about the Kubernetes demo - Clean up k8 documentation in README - Add more information and links to experimental branch description - Add control loop feature to cloud readme - Add link to upstream issue in gRPC - Update README now that work around for grpcio v1.30.2 is in place - Merge k8 directory service readme and service Dockerfile from cloud branch - Fixup control and rules files for grpc - Sync grpc interface with app profiling api - Add new build requirements to github workflow - Add gRPC plumbing for PlatformRestoreControl - Do not build cargo index in home + Build the index in $(abs_builddir) instead. - Revert client_registry changes - Disable array bounds checking due to issue with protoc generated code + protocolbuffers/protobuf#7140 - Switch geopm systemd service to using grpc in unit file - Periodically close inactive sessions in the grpc server - Change batch server from fork to subprocess - Remove BatchServerTest entirely
- First pass at creating a prototype buffer definition for DBus methods used by ServiceIOGroup - First draft of GEOPM grpc service - Generate protobuffer files with autogen.sh - Add some configure scripts for grpc. - Add grpc requirements to spec file - Add protoc-gen.sh to tarball - Fixes geopm#2775 - Use LOCAL_TCP not UDS because python support server context in UDS is limited - Abstract use of GLib and posix pid interfaces. This will enable network peer ID to be used in place of PID for tracking clients - Derive the client_id from the gRPC server context: use number in peer name following last colon - TODO: Write unit tests - TODO: Run integration tests for controls - TODO: Add documentation - TODO: Implement session closure when client connection ends - Get working in containers - Add k8 manifest and Dockerfile - TODO: Dockerfile currently points to my debug builds - Switch back to user provided credentials + Although we are able to get the peer name from the context it is not really possible to go from network peer to linux PID + We will have to switch back to a UDS approach and implement OpenSession and CloseSession RPCs in either C++ or golang where getting the UDS credentials from the server context is possible (cannot see a way in python) - Switch back to UDS socket - Add a seccomp for all discovered syscalls - Disable PID tracking when running inside of a container + This is a stopgap solution. + Need to get credentials from UDS + More pressingly, we need to be able to convert between PID namespaces. - Move seccomp files into container image - Clean up client test - Remove seccomp sections of manifest - Add some documentation about the k8 files - Remove unnessesary build requires from spec file - Add rust proxy server to tranfer UDS credentials - Forward requests to python based geopmd server - Transfer UDS credentials through the SessionKey message - Switch geopmdpy to use private port for gprc comms - Remove use of google Empty protobuf + Cannot seem to properly import it into rust - update .gitignore - Add a mutex to protect the client object - Add build scripts for rust - Fix issue with stop batch (missing session key) - Add a vendor archive to support rust build in obs - Fixup protobuf deps - Remove extra crate files from install - Switch socket paths to end in ".sock" to make tonic happy - Update proxy server to use correct pattern for UDS sockets based on tonic examplue - Fix permissions on public socket - Remove modification to geopm.seervice spec file: do not use grpc flag - Got basic read test working with credential forwarding - Update docker file to use Tumbleweed distro (required for latest Rust) - Remove the seccomp files - Do not seem to be required on the k8 system under test. - May be missing system calls, only ran strace on one test. - Add util-linux to Requires section of spec file - Create the user and groups on the server node and share the PID namespace - Get rid of known issue documentation (no longer a known issue) - Restrict umask when creating secure UDS - Add missing "not" in comment - Add Header to CSV - Add more documentation about the Kubernetes demo - Clean up k8 documentation in README - Add more information and links to experimental branch description - Add control loop feature to cloud readme - Add link to upstream issue in gRPC - Update README now that work around for grpcio v1.30.2 is in place - Merge k8 directory service readme and service Dockerfile from cloud branch - Fixup control and rules files for grpc - Sync grpc interface with app profiling api - Add new build requirements to github workflow - Add gRPC plumbing for PlatformRestoreControl - Do not build cargo index in home + Build the index in $(abs_builddir) instead. - Revert client_registry changes - Disable array bounds checking due to issue with protoc generated code + protocolbuffers/protobuf#7140 - Switch geopm systemd service to using grpc in unit file - Periodically close inactive sessions in the grpc server - Change batch server from fork to subprocess - Remove BatchServerTest entirely
- First pass at creating a prototype buffer definition for DBus methods used by ServiceIOGroup - First draft of GEOPM grpc service - Generate protobuffer files with autogen.sh - Add some configure scripts for grpc. - Add grpc requirements to spec file - Add protoc-gen.sh to tarball - Fixes geopm#2775 - Use LOCAL_TCP not UDS because python support server context in UDS is limited - Abstract use of GLib and posix pid interfaces. This will enable network peer ID to be used in place of PID for tracking clients - Derive the client_id from the gRPC server context: use number in peer name following last colon - TODO: Write unit tests - TODO: Run integration tests for controls - TODO: Add documentation - TODO: Implement session closure when client connection ends - Get working in containers - Add k8 manifest and Dockerfile - TODO: Dockerfile currently points to my debug builds - Switch back to user provided credentials + Although we are able to get the peer name from the context it is not really possible to go from network peer to linux PID + We will have to switch back to a UDS approach and implement OpenSession and CloseSession RPCs in either C++ or golang where getting the UDS credentials from the server context is possible (cannot see a way in python) - Switch back to UDS socket - Add a seccomp for all discovered syscalls - Disable PID tracking when running inside of a container + This is a stopgap solution. + Need to get credentials from UDS + More pressingly, we need to be able to convert between PID namespaces. - Move seccomp files into container image - Clean up client test - Remove seccomp sections of manifest - Add some documentation about the k8 files - Remove unnessesary build requires from spec file - Add rust proxy server to tranfer UDS credentials - Forward requests to python based geopmd server - Transfer UDS credentials through the SessionKey message - Switch geopmdpy to use private port for gprc comms - Remove use of google Empty protobuf + Cannot seem to properly import it into rust - update .gitignore - Add a mutex to protect the client object - Add build scripts for rust - Fix issue with stop batch (missing session key) - Add a vendor archive to support rust build in obs - Fixup protobuf deps - Remove extra crate files from install - Switch socket paths to end in ".sock" to make tonic happy - Update proxy server to use correct pattern for UDS sockets based on tonic examplue - Fix permissions on public socket - Remove modification to geopm.seervice spec file: do not use grpc flag - Got basic read test working with credential forwarding - Update docker file to use Tumbleweed distro (required for latest Rust) - Remove the seccomp files - Do not seem to be required on the k8 system under test. - May be missing system calls, only ran strace on one test. - Add util-linux to Requires section of spec file - Create the user and groups on the server node and share the PID namespace - Get rid of known issue documentation (no longer a known issue) - Restrict umask when creating secure UDS - Add missing "not" in comment - Add Header to CSV - Add more documentation about the Kubernetes demo - Clean up k8 documentation in README - Add more information and links to experimental branch description - Add control loop feature to cloud readme - Add link to upstream issue in gRPC - Update README now that work around for grpcio v1.30.2 is in place - Merge k8 directory service readme and service Dockerfile from cloud branch - Fixup control and rules files for grpc - Sync grpc interface with app profiling api - Add new build requirements to github workflow - Add gRPC plumbing for PlatformRestoreControl - Do not build cargo index in home + Build the index in $(abs_builddir) instead. - Revert client_registry changes - Disable array bounds checking due to issue with protoc generated code + protocolbuffers/protobuf#7140 - Switch geopm systemd service to using grpc in unit file - Periodically close inactive sessions in the grpc server - Change batch server from fork to subprocess - Remove BatchServerTest entirely
- First pass at creating a prototype buffer definition for DBus methods used by ServiceIOGroup - First draft of GEOPM grpc service - Generate protobuffer files with autogen.sh - Add some configure scripts for grpc. - Add grpc requirements to spec file - Add protoc-gen.sh to tarball - Fixes geopm#2775 - Use LOCAL_TCP not UDS because python support server context in UDS is limited - Abstract use of GLib and posix pid interfaces. This will enable network peer ID to be used in place of PID for tracking clients - Derive the client_id from the gRPC server context: use number in peer name following last colon - TODO: Write unit tests - TODO: Run integration tests for controls - TODO: Add documentation - TODO: Implement session closure when client connection ends - Get working in containers - Add k8 manifest and Dockerfile - TODO: Dockerfile currently points to my debug builds - Switch back to user provided credentials + Although we are able to get the peer name from the context it is not really possible to go from network peer to linux PID + We will have to switch back to a UDS approach and implement OpenSession and CloseSession RPCs in either C++ or golang where getting the UDS credentials from the server context is possible (cannot see a way in python) - Switch back to UDS socket - Add a seccomp for all discovered syscalls - Disable PID tracking when running inside of a container + This is a stopgap solution. + Need to get credentials from UDS + More pressingly, we need to be able to convert between PID namespaces. - Move seccomp files into container image - Clean up client test - Remove seccomp sections of manifest - Add some documentation about the k8 files - Remove unnessesary build requires from spec file - Add rust proxy server to tranfer UDS credentials - Forward requests to python based geopmd server - Transfer UDS credentials through the SessionKey message - Switch geopmdpy to use private port for gprc comms - Remove use of google Empty protobuf + Cannot seem to properly import it into rust - update .gitignore - Add a mutex to protect the client object - Add build scripts for rust - Fix issue with stop batch (missing session key) - Add a vendor archive to support rust build in obs - Fixup protobuf deps - Remove extra crate files from install - Switch socket paths to end in ".sock" to make tonic happy - Update proxy server to use correct pattern for UDS sockets based on tonic examplue - Fix permissions on public socket - Remove modification to geopm.seervice spec file: do not use grpc flag - Got basic read test working with credential forwarding - Update docker file to use Tumbleweed distro (required for latest Rust) - Remove the seccomp files - Do not seem to be required on the k8 system under test. - May be missing system calls, only ran strace on one test. - Add util-linux to Requires section of spec file - Create the user and groups on the server node and share the PID namespace - Get rid of known issue documentation (no longer a known issue) - Restrict umask when creating secure UDS - Add missing "not" in comment - Add Header to CSV - Add more documentation about the Kubernetes demo - Clean up k8 documentation in README - Add more information and links to experimental branch description - Add control loop feature to cloud readme - Add link to upstream issue in gRPC - Update README now that work around for grpcio v1.30.2 is in place - Merge k8 directory service readme and service Dockerfile from cloud branch - Fixup control and rules files for grpc - Sync grpc interface with app profiling api - Add new build requirements to github workflow - Add gRPC plumbing for PlatformRestoreControl - Do not build cargo index in home + Build the index in $(abs_builddir) instead. - Revert client_registry changes - Disable array bounds checking due to issue with protoc generated code + protocolbuffers/protobuf#7140 - Switch geopm systemd service to using grpc in unit file - Periodically close inactive sessions in the grpc server - Change batch server from fork to subprocess - Remove BatchServerTest entirely
- First pass at creating a prototype buffer definition for DBus methods used by ServiceIOGroup - First draft of GEOPM grpc service - Generate protobuffer files with autogen.sh - Add some configure scripts for grpc. - Add grpc requirements to spec file - Add protoc-gen.sh to tarball - Fixes geopm#2775 - Use LOCAL_TCP not UDS because python support server context in UDS is limited - Abstract use of GLib and posix pid interfaces. This will enable network peer ID to be used in place of PID for tracking clients - Derive the client_id from the gRPC server context: use number in peer name following last colon - TODO: Write unit tests - TODO: Run integration tests for controls - TODO: Add documentation - TODO: Implement session closure when client connection ends - Get working in containers - Add k8 manifest and Dockerfile - TODO: Dockerfile currently points to my debug builds - Switch back to user provided credentials + Although we are able to get the peer name from the context it is not really possible to go from network peer to linux PID + We will have to switch back to a UDS approach and implement OpenSession and CloseSession RPCs in either C++ or golang where getting the UDS credentials from the server context is possible (cannot see a way in python) - Switch back to UDS socket - Add a seccomp for all discovered syscalls - Disable PID tracking when running inside of a container + This is a stopgap solution. + Need to get credentials from UDS + More pressingly, we need to be able to convert between PID namespaces. - Move seccomp files into container image - Clean up client test - Remove seccomp sections of manifest - Add some documentation about the k8 files - Remove unnessesary build requires from spec file - Add rust proxy server to tranfer UDS credentials - Forward requests to python based geopmd server - Transfer UDS credentials through the SessionKey message - Switch geopmdpy to use private port for gprc comms - Remove use of google Empty protobuf + Cannot seem to properly import it into rust - update .gitignore - Add a mutex to protect the client object - Add build scripts for rust - Fix issue with stop batch (missing session key) - Add a vendor archive to support rust build in obs - Fixup protobuf deps - Remove extra crate files from install - Switch socket paths to end in ".sock" to make tonic happy - Update proxy server to use correct pattern for UDS sockets based on tonic examplue - Fix permissions on public socket - Remove modification to geopm.seervice spec file: do not use grpc flag - Got basic read test working with credential forwarding - Update docker file to use Tumbleweed distro (required for latest Rust) - Remove the seccomp files - Do not seem to be required on the k8 system under test. - May be missing system calls, only ran strace on one test. - Add util-linux to Requires section of spec file - Create the user and groups on the server node and share the PID namespace - Get rid of known issue documentation (no longer a known issue) - Restrict umask when creating secure UDS - Add missing "not" in comment - Add Header to CSV - Add more documentation about the Kubernetes demo - Clean up k8 documentation in README - Add more information and links to experimental branch description - Add control loop feature to cloud readme - Add link to upstream issue in gRPC - Update README now that work around for grpcio v1.30.2 is in place - Merge k8 directory service readme and service Dockerfile from cloud branch - Fixup control and rules files for grpc - Sync grpc interface with app profiling api - Add new build requirements to github workflow - Add gRPC plumbing for PlatformRestoreControl - Do not build cargo index in home + Build the index in $(abs_builddir) instead. - Revert client_registry changes - Disable array bounds checking due to issue with protoc generated code + protocolbuffers/protobuf#7140 - Switch geopm systemd service to using grpc in unit file - Periodically close inactive sessions in the grpc server - Change batch server from fork to subprocess - Remove BatchServerTest entirely
- First pass at creating a prototype buffer definition for DBus methods used by ServiceIOGroup - First draft of GEOPM grpc service - Generate protobuffer files with autogen.sh - Add some configure scripts for grpc. - Add grpc requirements to spec file - Add protoc-gen.sh to tarball - Fixes geopm#2775 - Use LOCAL_TCP not UDS because python support server context in UDS is limited - Abstract use of GLib and posix pid interfaces. This will enable network peer ID to be used in place of PID for tracking clients - Derive the client_id from the gRPC server context: use number in peer name following last colon - TODO: Write unit tests - TODO: Run integration tests for controls - TODO: Add documentation - TODO: Implement session closure when client connection ends - Get working in containers - Add k8 manifest and Dockerfile - TODO: Dockerfile currently points to my debug builds - Switch back to user provided credentials + Although we are able to get the peer name from the context it is not really possible to go from network peer to linux PID + We will have to switch back to a UDS approach and implement OpenSession and CloseSession RPCs in either C++ or golang where getting the UDS credentials from the server context is possible (cannot see a way in python) - Switch back to UDS socket - Add a seccomp for all discovered syscalls - Disable PID tracking when running inside of a container + This is a stopgap solution. + Need to get credentials from UDS + More pressingly, we need to be able to convert between PID namespaces. - Move seccomp files into container image - Clean up client test - Remove seccomp sections of manifest - Add some documentation about the k8 files - Remove unnessesary build requires from spec file - Add rust proxy server to tranfer UDS credentials - Forward requests to python based geopmd server - Transfer UDS credentials through the SessionKey message - Switch geopmdpy to use private port for gprc comms - Remove use of google Empty protobuf + Cannot seem to properly import it into rust - update .gitignore - Add a mutex to protect the client object - Add build scripts for rust - Fix issue with stop batch (missing session key) - Add a vendor archive to support rust build in obs - Fixup protobuf deps - Remove extra crate files from install - Switch socket paths to end in ".sock" to make tonic happy - Update proxy server to use correct pattern for UDS sockets based on tonic examplue - Fix permissions on public socket - Remove modification to geopm.seervice spec file: do not use grpc flag - Got basic read test working with credential forwarding - Update docker file to use Tumbleweed distro (required for latest Rust) - Remove the seccomp files - Do not seem to be required on the k8 system under test. - May be missing system calls, only ran strace on one test. - Add util-linux to Requires section of spec file - Create the user and groups on the server node and share the PID namespace - Get rid of known issue documentation (no longer a known issue) - Restrict umask when creating secure UDS - Add missing "not" in comment - Add Header to CSV - Add more documentation about the Kubernetes demo - Clean up k8 documentation in README - Add more information and links to experimental branch description - Add control loop feature to cloud readme - Add link to upstream issue in gRPC - Update README now that work around for grpcio v1.30.2 is in place - Merge k8 directory service readme and service Dockerfile from cloud branch - Fixup control and rules files for grpc - Sync grpc interface with app profiling api - Add new build requirements to github workflow - Add gRPC plumbing for PlatformRestoreControl - Do not build cargo index in home + Build the index in $(abs_builddir) instead. - Revert client_registry changes - Disable array bounds checking due to issue with protoc generated code + protocolbuffers/protobuf#7140 - Switch geopm systemd service to using grpc in unit file - Periodically close inactive sessions in the grpc server - Change batch server from fork to subprocess - Remove BatchServerTest entirely
- First pass at creating a prototype buffer definition for DBus methods used by ServiceIOGroup - First draft of GEOPM grpc service - Generate protobuffer files with autogen.sh - Add some configure scripts for grpc. - Add grpc requirements to spec file - Add protoc-gen.sh to tarball - Fixes geopm#2775 - Use LOCAL_TCP not UDS because python support server context in UDS is limited - Abstract use of GLib and posix pid interfaces. This will enable network peer ID to be used in place of PID for tracking clients - Derive the client_id from the gRPC server context: use number in peer name following last colon - TODO: Write unit tests - TODO: Run integration tests for controls - TODO: Add documentation - TODO: Implement session closure when client connection ends - Get working in containers - Add k8 manifest and Dockerfile - TODO: Dockerfile currently points to my debug builds - Switch back to user provided credentials + Although we are able to get the peer name from the context it is not really possible to go from network peer to linux PID + We will have to switch back to a UDS approach and implement OpenSession and CloseSession RPCs in either C++ or golang where getting the UDS credentials from the server context is possible (cannot see a way in python) - Switch back to UDS socket - Add a seccomp for all discovered syscalls - Disable PID tracking when running inside of a container + This is a stopgap solution. + Need to get credentials from UDS + More pressingly, we need to be able to convert between PID namespaces. - Move seccomp files into container image - Clean up client test - Remove seccomp sections of manifest - Add some documentation about the k8 files - Remove unnessesary build requires from spec file - Add rust proxy server to tranfer UDS credentials - Forward requests to python based geopmd server - Transfer UDS credentials through the SessionKey message - Switch geopmdpy to use private port for gprc comms - Remove use of google Empty protobuf + Cannot seem to properly import it into rust - update .gitignore - Add a mutex to protect the client object - Add build scripts for rust - Fix issue with stop batch (missing session key) - Add a vendor archive to support rust build in obs - Fixup protobuf deps - Remove extra crate files from install - Switch socket paths to end in ".sock" to make tonic happy - Update proxy server to use correct pattern for UDS sockets based on tonic examplue - Fix permissions on public socket - Remove modification to geopm.seervice spec file: do not use grpc flag - Got basic read test working with credential forwarding - Update docker file to use Tumbleweed distro (required for latest Rust) - Remove the seccomp files - Do not seem to be required on the k8 system under test. - May be missing system calls, only ran strace on one test. - Add util-linux to Requires section of spec file - Create the user and groups on the server node and share the PID namespace - Get rid of known issue documentation (no longer a known issue) - Restrict umask when creating secure UDS - Add missing "not" in comment - Add Header to CSV - Add more documentation about the Kubernetes demo - Clean up k8 documentation in README - Add more information and links to experimental branch description - Add control loop feature to cloud readme - Add link to upstream issue in gRPC - Update README now that work around for grpcio v1.30.2 is in place - Merge k8 directory service readme and service Dockerfile from cloud branch - Fixup control and rules files for grpc - Sync grpc interface with app profiling api - Add new build requirements to github workflow - Add gRPC plumbing for PlatformRestoreControl - Do not build cargo index in home + Build the index in $(abs_builddir) instead. - Revert client_registry changes - Disable array bounds checking due to issue with protoc generated code + protocolbuffers/protobuf#7140 - Switch geopm systemd service to using grpc in unit file - Periodically close inactive sessions in the grpc server - Change batch server from fork to subprocess - Remove BatchServerTest entirely
What version of protobuf and what language are you using?
Version: master
Language: C++
What operating system (Linux, Windows, ...) and version?
Ubuntu 19.10 on x86_64
What runtime / compiler are you using (e.g., python version or gcc version)
g++ (Ubuntu 9.2.1-9ubuntu2) 9.2.1 20191008
What did you do?
Used a proto file such as the following:
and compiled it with
protoc foo.proto --cpp_out=. && g++ -O3 -Wall foo.pb.cc -c
What did you expect to see
compiles without warnings
What did you see instead?
It warns about memset() being called on a field, but writing not just to that field, but also to following fields. See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90376
The warning doesn't appear when using -O2 instead of -O3, but -O3 is common in CMake release builds (which is how it showed up here).
Anything else we should know about your project / environment
The text was updated successfully, but these errors were encountered: