diff --git a/CHANGELOG-DCA.rst b/CHANGELOG-DCA.rst index 569bda03c6a0d..7b5abd00a3bc2 100644 --- a/CHANGELOG-DCA.rst +++ b/CHANGELOG-DCA.rst @@ -2,6 +2,19 @@ Release Notes ============= +.. _Release Notes_7.60.1: + +7.60.1 +====== + +.. _Release Notes_7.60.1_Prelude: + +Prelude +------- + +Released on: 2024-12-19 +Pinned to datadog-agent v7.60.1: `CHANGELOG `_. + .. _Release Notes_7.60.0: 7.60.0 diff --git a/CHANGELOG.rst b/CHANGELOG.rst index ba9f97c930ee8..1def73a37b2e1 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,27 @@ Release Notes ============= +.. _Release Notes_7.60.1: + +7.60.1 +====== + +.. _Release Notes_7.60.1_Prelude: + +Prelude +------- + +Release on: 2024-12-19 + + +.. _Release Notes_7.60.1_Security Notes: + +Security Notes +-------------- + +- Update ``golang.org/x/crypto`` to fix CVE-2024-45337. + + .. _Release Notes_7.60.0: 7.60.0 diff --git a/cmd/agent/subcommands/flare/command.go b/cmd/agent/subcommands/flare/command.go index 1b4fb2d3bc1e3..a6da5391ae5d5 100644 --- a/cmd/agent/subcommands/flare/command.go +++ b/cmd/agent/subcommands/flare/command.go @@ -175,10 +175,18 @@ func readProfileData(seconds int) (flare.ProfileData, error) { type pprofGetter func(path string) ([]byte, error) - tcpGet := func(portConfig string) pprofGetter { - pprofURL := fmt.Sprintf("http://127.0.0.1:%d/debug/pprof", pkgconfigsetup.Datadog().GetInt(portConfig)) + tcpGet := func(portConfig string, onHTTPS bool) pprofGetter { + endpoint := url.URL{ + Scheme: "http", + Host: net.JoinHostPort("127.0.0.1", strconv.Itoa(pkgconfigsetup.Datadog().GetInt(portConfig))), + Path: "/debug/pprof", + } + if onHTTPS { + endpoint.Scheme = "https" + } + return func(path string) ([]byte, error) { - return util.DoGet(c, pprofURL+path, util.LeaveConnectionOpen) + return util.DoGet(c, endpoint.String()+path, util.LeaveConnectionOpen) } } @@ -228,15 +236,15 @@ func readProfileData(seconds int) (flare.ProfileData, error) { } agentCollectors := map[string]agentProfileCollector{ - "core": serviceProfileCollector(tcpGet("expvar_port"), seconds), - "security-agent": serviceProfileCollector(tcpGet("security_agent.expvar_port"), seconds), + "core": serviceProfileCollector(tcpGet("expvar_port", false), seconds), + "security-agent": serviceProfileCollector(tcpGet("security_agent.expvar_port", false), seconds), } if pkgconfigsetup.Datadog().GetBool("process_config.enabled") || pkgconfigsetup.Datadog().GetBool("process_config.container_collection.enabled") || pkgconfigsetup.Datadog().GetBool("process_config.process_collection.enabled") { - agentCollectors["process"] = serviceProfileCollector(tcpGet("process_config.expvar_port"), seconds) + agentCollectors["process"] = serviceProfileCollector(tcpGet("process_config.expvar_port", false), seconds) } if pkgconfigsetup.Datadog().GetBool("apm_config.enabled") { @@ -249,7 +257,7 @@ func readProfileData(seconds int) (flare.ProfileData, error) { traceCpusec = 4 } - agentCollectors["trace"] = serviceProfileCollector(tcpGet("apm_config.debug.port"), traceCpusec) + agentCollectors["trace"] = serviceProfileCollector(tcpGet("apm_config.debug.port", true), traceCpusec) } if pkgconfigsetup.SystemProbe().GetBool("system_probe_config.enabled") { diff --git a/cmd/agent/subcommands/flare/command_test.go b/cmd/agent/subcommands/flare/command_test.go index a27304e95b133..4c96cae079aa9 100644 --- a/cmd/agent/subcommands/flare/command_test.go +++ b/cmd/agent/subcommands/flare/command_test.go @@ -29,6 +29,7 @@ type commandTestSuite struct { suite.Suite sysprobeSocketPath string tcpServer *httptest.Server + tcpTLSServer *httptest.Server unixServer *httptest.Server systemProbeServer *httptest.Server } @@ -42,13 +43,17 @@ func (c *commandTestSuite) SetupSuite() { // This should be called by each test that requires them. func (c *commandTestSuite) startTestServers() { t := c.T() - c.tcpServer, c.unixServer, c.systemProbeServer = c.getPprofTestServer() + c.tcpServer, c.tcpTLSServer, c.unixServer, c.systemProbeServer = c.getPprofTestServer() t.Cleanup(func() { if c.tcpServer != nil { c.tcpServer.Close() c.tcpServer = nil } + if c.tcpTLSServer != nil { + c.tcpTLSServer.Close() + c.tcpTLSServer = nil + } if c.unixServer != nil { c.unixServer.Close() c.unixServer = nil @@ -82,12 +87,13 @@ func newMockHandler() http.HandlerFunc { }) } -func (c *commandTestSuite) getPprofTestServer() (tcpServer *httptest.Server, unixServer *httptest.Server, sysProbeServer *httptest.Server) { +func (c *commandTestSuite) getPprofTestServer() (tcpServer *httptest.Server, tcpTLSServer *httptest.Server, unixServer *httptest.Server, sysProbeServer *httptest.Server) { var err error t := c.T() handler := newMockHandler() tcpServer = httptest.NewServer(handler) + tcpTLSServer = httptest.NewTLSServer(handler) if runtime.GOOS == "linux" { unixServer = httptest.NewUnstartedServer(handler) unixServer.Listener, err = net.Listen("unix", c.sysprobeSocketPath) @@ -101,7 +107,7 @@ func (c *commandTestSuite) getPprofTestServer() (tcpServer *httptest.Server, uni sysProbeServer.Start() } - return tcpServer, unixServer, sysProbeServer + return tcpServer, tcpTLSServer, unixServer, sysProbeServer } func TestCommandTestSuite(t *testing.T) { @@ -116,10 +122,14 @@ func (c *commandTestSuite) TestReadProfileData() { require.NoError(t, err) port := u.Port() + u, err = url.Parse(c.tcpTLSServer.URL) + require.NoError(t, err) + httpsPort := u.Port() + mockConfig := configmock.New(t) mockConfig.SetWithoutSource("expvar_port", port) mockConfig.SetWithoutSource("apm_config.enabled", true) - mockConfig.SetWithoutSource("apm_config.debug.port", port) + mockConfig.SetWithoutSource("apm_config.debug.port", httpsPort) mockConfig.SetWithoutSource("apm_config.receiver_timeout", "10") mockConfig.SetWithoutSource("process_config.expvar_port", port) mockConfig.SetWithoutSource("security_agent.expvar_port", port) diff --git a/cmd/agent/subcommands/secret/command.go b/cmd/agent/subcommands/secret/command.go index e24f95ca6d693..d8b2a7048114f 100644 --- a/cmd/agent/subcommands/secret/command.go +++ b/cmd/agent/subcommands/secret/command.go @@ -101,7 +101,7 @@ func traceAgentSecretRefresh(conf config.Component) ([]byte, error) { c := apiutil.GetClient(false) c.Timeout = conf.GetDuration("server_timeout") * time.Second - url := fmt.Sprintf("http://127.0.0.1:%d/secret/refresh", port) + url := fmt.Sprintf("https://127.0.0.1:%d/secret/refresh", port) res, err := apiutil.DoGet(c, url, apiutil.CloseConnection) if err != nil { return nil, fmt.Errorf("could not contact trace-agent: %s", err) diff --git a/comp/trace/agent/impl/agent.go b/comp/trace/agent/impl/agent.go index b3d783288ceb6..de9237dedeea5 100644 --- a/comp/trace/agent/impl/agent.go +++ b/comp/trace/agent/impl/agent.go @@ -24,6 +24,7 @@ import ( "go.opentelemetry.io/collector/pdata/ptrace" "go.uber.org/fx" + "github.com/DataDog/datadog-agent/comp/api/authtoken" "github.com/DataDog/datadog-agent/comp/core/secrets" tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def" "github.com/DataDog/datadog-agent/comp/dogstatsd/statsd" @@ -68,6 +69,7 @@ type dependencies struct { Statsd statsd.Component Tagger tagger.Component Compressor compression.Component + At authtoken.Component } var _ traceagent.Component = (*component)(nil) @@ -93,6 +95,7 @@ type component struct { params *Params tagger tagger.Component telemetryCollector telemetry.TelemetryCollector + at authtoken.Component wg *sync.WaitGroup } @@ -115,6 +118,7 @@ func NewAgent(deps dependencies) (traceagent.Component, error) { params: deps.Params, telemetryCollector: deps.TelemetryCollector, tagger: deps.Tagger, + at: deps.At, wg: &sync.WaitGroup{}, } statsdCl, err := setupMetrics(deps.Statsd, c.config, c.telemetryCollector) diff --git a/comp/trace/agent/impl/run.go b/comp/trace/agent/impl/run.go index 20ecbc6496a1b..f40b36e29ae7f 100644 --- a/comp/trace/agent/impl/run.go +++ b/comp/trace/agent/impl/run.go @@ -98,6 +98,9 @@ func runAgentSidekicks(ag component) error { })) } + // Configure the Trace Agent Debug server to use the IPC certificate + ag.Agent.DebugServer.SetTLSConfig(ag.at.GetTLSServerConfig()) + log.Infof("Trace agent running on host %s", tracecfg.Hostname) if pcfg := profilingConfig(tracecfg); pcfg != nil { if err := profiling.Start(*pcfg); err != nil { diff --git a/comp/trace/bundle_test.go b/comp/trace/bundle_test.go index e9874a4b40077..692e7c255f473 100644 --- a/comp/trace/bundle_test.go +++ b/comp/trace/bundle_test.go @@ -13,6 +13,8 @@ import ( "github.com/stretchr/testify/require" "go.uber.org/fx" + "github.com/DataDog/datadog-agent/comp/api/authtoken/createandfetchimpl" + "github.com/DataDog/datadog-agent/comp/api/authtoken/fetchonlyimpl" "github.com/DataDog/datadog-agent/comp/core" coreconfig "github.com/DataDog/datadog-agent/comp/core/config" log "github.com/DataDog/datadog-agent/comp/core/log/def" @@ -45,6 +47,7 @@ func TestBundleDependencies(t *testing.T) { zstdfx.Module(), taggerfx.Module(tagger.Params{}), fx.Supply(&traceagentimpl.Params{}), + createandfetchimpl.Module(), ) } @@ -75,6 +78,7 @@ func TestMockBundleDependencies(t *testing.T) { fx.Invoke(func(_ traceagent.Component) {}), MockBundle(), taggerfx.Module(tagger.Params{}), + fetchonlyimpl.MockModule(), )) require.NotNil(t, cfg.Object()) diff --git a/comp/trace/status/statusimpl/status.go b/comp/trace/status/statusimpl/status.go index e476ee0281d7a..00a8730b87da8 100644 --- a/comp/trace/status/statusimpl/status.go +++ b/comp/trace/status/statusimpl/status.go @@ -95,7 +95,7 @@ func (s statusProvider) populateStatus() map[string]interface{} { port := s.Config.GetInt("apm_config.debug.port") c := client() - url := fmt.Sprintf("http://localhost:%d/debug/vars", port) + url := fmt.Sprintf("https://localhost:%d/debug/vars", port) resp, err := apiutil.DoGet(c, url, apiutil.CloseConnection) if err != nil { return map[string]interface{}{ diff --git a/pkg/collector/corechecks/embed/apm/apm.go b/pkg/collector/corechecks/embed/apm/apm.go index 28162165eee6d..b724e77720b63 100644 --- a/pkg/collector/corechecks/embed/apm/apm.go +++ b/pkg/collector/corechecks/embed/apm/apm.go @@ -3,7 +3,7 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -//go:build apm && !windows && !linux +//go:build darwin // Package apm contains the APM check package apm diff --git a/pkg/collector/corechecks/embed/apm/apm_nix.go b/pkg/collector/corechecks/embed/apm/apm_nix.go index a024e45a11844..3dd1535ce8432 100644 --- a/pkg/collector/corechecks/embed/apm/apm_nix.go +++ b/pkg/collector/corechecks/embed/apm/apm_nix.go @@ -3,9 +3,7 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -//go:build apm && !windows && !linux - -// linux handled by systemd/upstart +//go:build darwin package apm diff --git a/pkg/collector/corechecks/embed/apm/stub.go b/pkg/collector/corechecks/embed/apm/stub.go index b4c5ea584872b..5ed387c9a2d8f 100644 --- a/pkg/collector/corechecks/embed/apm/stub.go +++ b/pkg/collector/corechecks/embed/apm/stub.go @@ -3,7 +3,7 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -//go:build !apm || windows || linux +//go:build !darwin // Package apm provides a stub for the APM check package apm diff --git a/pkg/collector/corechecks/embed/process/process_agent.go b/pkg/collector/corechecks/embed/process/process_agent.go index c27d5a4b8f975..0c4f971467a9e 100644 --- a/pkg/collector/corechecks/embed/process/process_agent.go +++ b/pkg/collector/corechecks/embed/process/process_agent.go @@ -3,7 +3,7 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -//go:build process && (darwin || freebsd) +//go:build darwin //nolint:revive // TODO(PLINT) Fix revive linter package process diff --git a/pkg/collector/corechecks/embed/process/stub.go b/pkg/collector/corechecks/embed/process/stub.go index 1faeaac1b12a6..2279f0ea3c370 100644 --- a/pkg/collector/corechecks/embed/process/stub.go +++ b/pkg/collector/corechecks/embed/process/stub.go @@ -3,7 +3,7 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -//go:build !process || (!darwin && !freebsd) +//go:build !darwin //nolint:revive // TODO(Process) Fix revive linter package process diff --git a/pkg/collector/corechecks/snmp/integration_topology_test.go b/pkg/collector/corechecks/snmp/integration_topology_test.go index b4f0f42ceb6d0..c9298738ccf56 100644 --- a/pkg/collector/corechecks/snmp/integration_topology_test.go +++ b/pkg/collector/corechecks/snmp/integration_topology_test.go @@ -661,6 +661,7 @@ profiles: { "id": "profile-metadata:1.2.3.4:101.1", "source_type": "lldp", + "integration": "snmp", "local": { "device": { "dd_id": "profile-metadata:1.2.3.4" @@ -689,6 +690,7 @@ profiles: { "id": "profile-metadata:1.2.3.4:102.2", "source_type": "lldp", + "integration": "snmp", "local": { "device": { "dd_id": "profile-metadata:1.2.3.4" @@ -1363,6 +1365,7 @@ profiles: { "id": "profile-metadata:1.2.3.4:1.5", "source_type": "cdp", + "integration": "snmp", "local": { "device": { "dd_id": "profile-metadata:1.2.3.4" @@ -1386,6 +1389,7 @@ profiles: { "id": "profile-metadata:1.2.3.4:2.3", "source_type": "cdp", + "integration": "snmp", "local": { "device": { "dd_id": "profile-metadata:1.2.3.4" @@ -2056,6 +2060,7 @@ profiles: { "id": "profile-metadata:1.2.3.4:101.1", "source_type": "lldp", + "integration": "snmp", "local": { "device": { "dd_id": "profile-metadata:1.2.3.4" @@ -2084,6 +2089,7 @@ profiles: { "id": "profile-metadata:1.2.3.4:102.2", "source_type": "lldp", + "integration": "snmp", "local": { "device": { "dd_id": "profile-metadata:1.2.3.4" diff --git a/pkg/collector/corechecks/snmp/internal/report/report_device_metadata.go b/pkg/collector/corechecks/snmp/internal/report/report_device_metadata.go index 3e9ad39677d4c..6bdcec852a1d8 100644 --- a/pkg/collector/corechecks/snmp/internal/report/report_device_metadata.go +++ b/pkg/collector/corechecks/snmp/internal/report/report_device_metadata.go @@ -385,8 +385,9 @@ func buildNetworkTopologyMetadataWithLLDP(deviceID string, store *metadata.Store remEntryUniqueID := localPortNum + "." + lldpRemIndex newLink := devicemetadata.TopologyLinkMetadata{ - ID: deviceID + ":" + remEntryUniqueID, - SourceType: topologyLinkSourceTypeLLDP, + ID: deviceID + ":" + remEntryUniqueID, + SourceType: topologyLinkSourceTypeLLDP, + Integration: common.SnmpIntegrationName, Remote: &devicemetadata.TopologyLinkSide{ Device: &devicemetadata.TopologyLinkDevice{ Name: store.GetColumnAsString("lldp_remote.device_name", strIndex), @@ -446,8 +447,9 @@ func buildNetworkTopologyMetadataWithCDP(deviceID string, store *metadata.Store, remEntryUniqueID := cdpCacheIfIndex + "." + cdpCacheDeviceIndex newLink := devicemetadata.TopologyLinkMetadata{ - ID: deviceID + ":" + remEntryUniqueID, - SourceType: topologyLinkSourceTypeCDP, + ID: deviceID + ":" + remEntryUniqueID, + SourceType: topologyLinkSourceTypeCDP, + Integration: common.SnmpIntegrationName, Remote: &devicemetadata.TopologyLinkSide{ Device: &devicemetadata.TopologyLinkDevice{ Name: store.GetColumnAsString("cdp_remote.device_name", strIndex), diff --git a/pkg/config/fetcher/from_processes.go b/pkg/config/fetcher/from_processes.go index 5b8088f41d970..95c24e283fb46 100644 --- a/pkg/config/fetcher/from_processes.go +++ b/pkg/config/fetcher/from_processes.go @@ -71,7 +71,7 @@ func TraceAgentConfig(config config.Reader) (string, error) { c := util.GetClient(false) c.Timeout = config.GetDuration("server_timeout") * time.Second - ipcAddressWithPort := fmt.Sprintf("http://127.0.0.1:%d/config", port) + ipcAddressWithPort := fmt.Sprintf("https://127.0.0.1:%d/config", port) client := settingshttp.NewClient(c, ipcAddressWithPort, "trace-agent", settingshttp.NewHTTPClientOptions(util.CloseConnection)) return client.FullConfig() diff --git a/pkg/flare/archive.go b/pkg/flare/archive.go index 14b184449ccf8..8c2ad86688e97 100644 --- a/pkg/flare/archive.go +++ b/pkg/flare/archive.go @@ -214,7 +214,7 @@ func getExpVar(fb flaretypes.FlareBuilder) error { apmDebugPort := pkgconfigsetup.Datadog().GetInt("apm_config.debug.port") f := filepath.Join("expvar", "trace-agent") - resp, err := http.Get(fmt.Sprintf("http://127.0.0.1:%d/debug/vars", apmDebugPort)) + resp, err := http.Get(fmt.Sprintf("https://127.0.0.1:%d/debug/vars", apmDebugPort)) if err != nil { return fb.AddFile(f, []byte(fmt.Sprintf("Error retrieving vars: %v", err))) } diff --git a/pkg/networkdevice/metadata/payload.go b/pkg/networkdevice/metadata/payload.go index 54b2f45eb0996..5f67824728cbe 100644 --- a/pkg/networkdevice/metadata/payload.go +++ b/pkg/networkdevice/metadata/payload.go @@ -131,10 +131,11 @@ type TopologyLinkSide struct { // TopologyLinkMetadata contains topology interface to interface links metadata type TopologyLinkMetadata struct { - ID string `json:"id"` - SourceType string `json:"source_type"` - Local *TopologyLinkSide `json:"local"` - Remote *TopologyLinkSide `json:"remote"` + ID string `json:"id"` + SourceType string `json:"source_type"` + Integration string `json:"integration,omitempty"` + Local *TopologyLinkSide `json:"local"` + Remote *TopologyLinkSide `json:"remote"` } // NetflowExporter contains netflow exporters info diff --git a/pkg/security/ebpf/c/include/constants/offsets/filesystem.h b/pkg/security/ebpf/c/include/constants/offsets/filesystem.h index 24b2d5f769af1..797070a8534e7 100644 --- a/pkg/security/ebpf/c/include/constants/offsets/filesystem.h +++ b/pkg/security/ebpf/c/include/constants/offsets/filesystem.h @@ -9,8 +9,11 @@ struct mount; unsigned long __attribute__((always_inline)) get_inode_ino(struct inode *inode) { + u64 inode_ino_offset; + LOAD_CONSTANT("inode_ino_offset", inode_ino_offset); + unsigned long ino; - bpf_probe_read(&ino, sizeof(inode), &inode->i_ino); + bpf_probe_read(&ino, sizeof(inode), (void *)inode + inode_ino_offset); return ino; } diff --git a/pkg/security/ebpf/c/include/helpers/filesystem.h b/pkg/security/ebpf/c/include/helpers/filesystem.h index 07ca0431d7382..aca8413a89aab 100644 --- a/pkg/security/ebpf/c/include/helpers/filesystem.h +++ b/pkg/security/ebpf/c/include/helpers/filesystem.h @@ -102,10 +102,15 @@ void __attribute__((always_inline)) fill_file(struct dentry *dentry, struct file file->dev = get_dentry_dev(dentry); - bpf_probe_read(&file->metadata.nlink, sizeof(file->metadata.nlink), (void *)&d_inode->i_nlink); + u64 inode_nlink_offset; + LOAD_CONSTANT("inode_nlink_offset", inode_nlink_offset); + u64 inode_gid_offset; + LOAD_CONSTANT("inode_gid_offset", inode_gid_offset); + + bpf_probe_read(&file->metadata.nlink, sizeof(file->metadata.nlink), (void *)d_inode + inode_nlink_offset); bpf_probe_read(&file->metadata.mode, sizeof(file->metadata.mode), &d_inode->i_mode); bpf_probe_read(&file->metadata.uid, sizeof(file->metadata.uid), &d_inode->i_uid); - bpf_probe_read(&file->metadata.gid, sizeof(file->metadata.gid), &d_inode->i_gid); + bpf_probe_read(&file->metadata.gid, sizeof(file->metadata.gid), (void *)d_inode + inode_gid_offset); u64 inode_ctime_sec_offset; LOAD_CONSTANT("inode_ctime_sec_offset", inode_ctime_sec_offset); @@ -121,7 +126,10 @@ void __attribute__((always_inline)) fill_file(struct dentry *dentry, struct file #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 6, 0) bpf_probe_read(&file->metadata.ctime, sizeof(file->metadata.ctime), &d_inode->i_ctime); #elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 11, 0) - bpf_probe_read(&file->metadata.ctime, sizeof(file->metadata.ctime), &d_inode->__i_ctime); + u64 inode_ctime_offset; + LOAD_CONSTANT("inode_ctime_offset", inode_ctime_offset); + + bpf_probe_read(&file->metadata.ctime, sizeof(file->metadata.ctime), (void *)d_inode + inode_ctime_offset); #else bpf_probe_read(&file->metadata.ctime.tv_sec, sizeof(file->metadata.ctime.tv_sec), &d_inode->i_ctime_sec); bpf_probe_read(&file->metadata.ctime.tv_nsec, sizeof(file->metadata.ctime.tv_nsec), &d_inode->i_ctime_nsec); @@ -142,7 +150,10 @@ void __attribute__((always_inline)) fill_file(struct dentry *dentry, struct file #if LINUX_VERSION_CODE < KERNEL_VERSION(6, 7, 0) bpf_probe_read(&file->metadata.mtime, sizeof(file->metadata.mtime), &d_inode->i_mtime); #elif LINUX_VERSION_CODE < KERNEL_VERSION(6, 11, 0) - bpf_probe_read(&file->metadata.mtime, sizeof(file->metadata.mtime), &d_inode->__i_mtime); + u64 inode_mtime_offset; + LOAD_CONSTANT("inode_mtime_offset", inode_mtime_offset); + + bpf_probe_read(&file->metadata.mtime, sizeof(file->metadata.mtime), (void *)d_inode + inode_mtime_offset); #else bpf_probe_read(&file->metadata.mtime.tv_sec, sizeof(file->metadata.mtime.tv_sec), &d_inode->i_mtime_sec); bpf_probe_read(&file->metadata.mtime.tv_nsec, sizeof(file->metadata.mtime.tv_nsec), &d_inode->i_mtime_nsec); diff --git a/pkg/security/probe/constantfetch/btfhub/constants.json b/pkg/security/probe/constantfetch/btfhub/constants.json index abf445a40119a..d555e9f30ad21 100644 --- a/pkg/security/probe/constantfetch/btfhub/constants.json +++ b/pkg/security/probe/constantfetch/btfhub/constants.json @@ -20,6 +20,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -66,6 +69,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -112,6 +118,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -158,6 +167,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -204,6 +216,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -250,6 +265,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -296,6 +314,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -342,6 +363,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -388,6 +412,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -434,6 +461,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -477,6 +507,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -520,6 +553,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -566,6 +602,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -612,6 +651,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -658,6 +700,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -704,6 +749,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -750,6 +798,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -792,6 +843,9 @@ "flowi4_uli_offset": 28, "flowi6_saddr_offset": 36, "flowi6_uli_offset": 56, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -833,6 +887,9 @@ "flowi4_uli_offset": 28, "flowi6_saddr_offset": 36, "flowi6_uli_offset": 56, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -873,6 +930,9 @@ "flowi4_uli_offset": 28, "flowi6_saddr_offset": 36, "flowi6_uli_offset": 56, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -915,6 +975,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -959,6 +1022,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -1003,6 +1069,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -1050,6 +1119,9 @@ "flowi4_uli_offset": 64, "flowi6_saddr_offset": 72, "flowi6_uli_offset": 92, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 320, "linux_binprm_envc_offset": 324, "linux_binprm_p_offset": 280, @@ -1095,6 +1167,9 @@ "flowi4_uli_offset": 64, "flowi6_saddr_offset": 72, "flowi6_uli_offset": 92, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 320, "linux_binprm_envc_offset": 324, "linux_binprm_p_offset": 280, @@ -1140,6 +1215,9 @@ "flowi4_uli_offset": 64, "flowi6_saddr_offset": 72, "flowi6_uli_offset": 92, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 320, "linux_binprm_envc_offset": 324, "linux_binprm_p_offset": 280, @@ -1185,6 +1263,9 @@ "flowi4_uli_offset": 64, "flowi6_saddr_offset": 72, "flowi6_uli_offset": 92, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 320, "linux_binprm_envc_offset": 324, "linux_binprm_p_offset": 280, @@ -1230,6 +1311,9 @@ "flowi4_uli_offset": 64, "flowi6_saddr_offset": 72, "flowi6_uli_offset": 92, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 320, "linux_binprm_envc_offset": 324, "linux_binprm_p_offset": 280, @@ -1277,6 +1361,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -1323,6 +1410,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -1363,6 +1453,9 @@ "flowi4_uli_offset": 28, "flowi6_saddr_offset": 36, "flowi6_uli_offset": 56, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -1404,6 +1497,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -1451,6 +1547,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 88, @@ -1498,6 +1597,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -1545,6 +1647,9 @@ "flowi4_uli_offset": 28, "flowi6_saddr_offset": 36, "flowi6_uli_offset": 56, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -1592,6 +1697,9 @@ "flowi4_uli_offset": 28, "flowi6_saddr_offset": 36, "flowi6_uli_offset": 56, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -1640,6 +1748,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -1686,6 +1797,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -1732,6 +1846,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -1780,6 +1897,9 @@ "flowi4_uli_offset": 64, "flowi6_saddr_offset": 72, "flowi6_uli_offset": 92, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 320, "linux_binprm_envc_offset": 324, "linux_binprm_p_offset": 280, @@ -1827,6 +1947,9 @@ "flowi4_uli_offset": 64, "flowi6_saddr_offset": 72, "flowi6_uli_offset": 92, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 320, "linux_binprm_envc_offset": 324, "linux_binprm_p_offset": 280, @@ -1876,6 +1999,9 @@ "flowi4_uli_offset": 64, "flowi6_saddr_offset": 72, "flowi6_uli_offset": 92, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 320, "linux_binprm_envc_offset": 324, "linux_binprm_p_offset": 280, @@ -1925,6 +2051,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -1973,6 +2102,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -2021,6 +2153,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -2069,6 +2204,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -2117,6 +2255,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -2165,6 +2306,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -2213,6 +2357,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -2261,6 +2408,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -2309,6 +2459,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -2357,6 +2510,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 88, @@ -2406,6 +2562,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 88, @@ -2455,6 +2614,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 88, @@ -2504,6 +2666,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 88, @@ -2553,6 +2718,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -2601,6 +2769,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -2649,6 +2820,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -2697,6 +2871,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -2745,6 +2922,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -2793,6 +2973,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -2841,6 +3024,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -2889,6 +3075,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -2937,6 +3126,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -2985,6 +3177,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 88, @@ -3034,6 +3229,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 88, @@ -3083,6 +3281,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 88, @@ -3132,6 +3333,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 88, @@ -3175,6 +3379,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -3218,6 +3425,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -3261,6 +3471,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -3305,6 +3518,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -3348,6 +3564,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -3394,6 +3613,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -3437,6 +3659,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -3481,6 +3706,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -3529,6 +3757,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -3578,6 +3809,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -3626,6 +3860,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -3675,6 +3912,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 200, "linux_binprm_envc_offset": 204, "linux_binprm_p_offset": 152, @@ -3722,6 +3962,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -3771,6 +4014,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 200, "linux_binprm_envc_offset": 204, "linux_binprm_p_offset": 152, @@ -3819,6 +4065,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -3868,6 +4117,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -3918,6 +4170,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -3968,6 +4223,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -4017,6 +4275,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -4066,6 +4327,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -4116,6 +4380,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -4163,6 +4430,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -4212,6 +4482,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -4262,6 +4535,9 @@ "flowi4_uli_offset": 64, "flowi6_saddr_offset": 72, "flowi6_uli_offset": 92, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -4312,6 +4588,9 @@ "flowi4_uli_offset": 64, "flowi6_saddr_offset": 72, "flowi6_uli_offset": 92, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -4359,6 +4638,9 @@ "flowi4_uli_offset": 28, "flowi6_saddr_offset": 36, "flowi6_uli_offset": 56, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -4401,6 +4683,9 @@ "flowi4_uli_offset": 28, "flowi6_saddr_offset": 36, "flowi6_uli_offset": 56, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -4447,6 +4732,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -4493,6 +4781,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -4542,6 +4833,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -4592,6 +4886,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -4642,6 +4939,9 @@ "flowi4_uli_offset": 64, "flowi6_saddr_offset": 72, "flowi6_uli_offset": 92, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -4692,6 +4992,9 @@ "flowi4_uli_offset": 64, "flowi6_saddr_offset": 72, "flowi6_uli_offset": 92, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -4742,6 +5045,9 @@ "flowi4_uli_offset": 64, "flowi6_saddr_offset": 72, "flowi6_uli_offset": 92, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 320, "linux_binprm_envc_offset": 324, "linux_binprm_p_offset": 280, @@ -4789,6 +5095,9 @@ "flowi4_uli_offset": 64, "flowi6_saddr_offset": 72, "flowi6_uli_offset": 92, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 320, "linux_binprm_envc_offset": 324, "linux_binprm_p_offset": 280, @@ -4838,6 +5147,9 @@ "flowi4_uli_offset": 64, "flowi6_saddr_offset": 72, "flowi6_uli_offset": 92, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -4888,6 +5200,9 @@ "flowi4_uli_offset": 64, "flowi6_saddr_offset": 72, "flowi6_uli_offset": 92, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 320, "linux_binprm_envc_offset": 324, "linux_binprm_p_offset": 280, @@ -4935,6 +5250,9 @@ "flowi4_uli_offset": 64, "flowi6_saddr_offset": 72, "flowi6_uli_offset": 92, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 320, "linux_binprm_envc_offset": 324, "linux_binprm_p_offset": 280, @@ -4984,6 +5302,9 @@ "flowi4_uli_offset": 64, "flowi6_saddr_offset": 72, "flowi6_uli_offset": 92, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -5031,6 +5352,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -5077,6 +5401,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -5123,6 +5450,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -5170,6 +5500,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -5217,6 +5550,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -5264,6 +5600,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -5313,6 +5652,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -5363,6 +5705,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -5413,6 +5758,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -5463,6 +5811,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -5513,6 +5864,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -5563,6 +5917,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -5608,6 +5965,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -5652,6 +6012,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -5698,6 +6061,9 @@ "flowi4_uli_offset": 28, "flowi6_saddr_offset": 36, "flowi6_uli_offset": 56, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -5745,6 +6111,9 @@ "flowi4_uli_offset": 28, "flowi6_saddr_offset": 36, "flowi6_uli_offset": 56, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -5793,6 +6162,9 @@ "flowi4_uli_offset": 64, "flowi6_saddr_offset": 72, "flowi6_uli_offset": 92, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 320, "linux_binprm_envc_offset": 324, "linux_binprm_p_offset": 280, @@ -5840,6 +6212,9 @@ "flowi4_uli_offset": 64, "flowi6_saddr_offset": 72, "flowi6_uli_offset": 92, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 320, "linux_binprm_envc_offset": 324, "linux_binprm_p_offset": 280, @@ -5889,6 +6264,9 @@ "flowi4_uli_offset": 64, "flowi6_saddr_offset": 72, "flowi6_uli_offset": 92, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 320, "linux_binprm_envc_offset": 324, "linux_binprm_p_offset": 280, @@ -5932,6 +6310,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -5975,6 +6356,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -6021,6 +6405,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -6067,6 +6454,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -6114,6 +6504,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -6160,6 +6553,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -6207,6 +6603,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -6256,6 +6655,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -6306,6 +6708,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -6356,6 +6761,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -6406,6 +6814,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -6451,6 +6862,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -6495,6 +6909,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -6539,6 +6956,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -6583,6 +7003,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -6629,6 +7052,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -6677,6 +7103,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -6725,6 +7154,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -6773,6 +7205,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -6821,6 +7256,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -6869,6 +7307,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -6917,6 +7358,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -6965,6 +7409,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -7014,6 +7461,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -7057,6 +7507,9 @@ "flowi4_uli_offset": 28, "flowi6_saddr_offset": 36, "flowi6_uli_offset": 56, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -7100,6 +7553,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -7143,6 +7599,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -7186,6 +7645,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -7229,6 +7691,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -7272,6 +7737,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -7315,6 +7783,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -7358,6 +7829,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -7401,6 +7875,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -7444,6 +7921,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -7487,6 +7967,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -7530,6 +8013,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -7573,6 +8059,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -7616,6 +8105,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -7659,6 +8151,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -7702,6 +8197,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -7745,6 +8243,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -7791,6 +8292,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -7839,6 +8343,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -7887,6 +8394,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -7936,6 +8446,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -7985,6 +8498,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 200, "linux_binprm_envc_offset": 204, "linux_binprm_p_offset": 152, @@ -8033,6 +8549,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 200, "linux_binprm_envc_offset": 204, "linux_binprm_p_offset": 152, @@ -8081,6 +8600,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 200, "linux_binprm_envc_offset": 204, "linux_binprm_p_offset": 152, @@ -8129,6 +8651,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -8179,6 +8704,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -8229,6 +8757,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -8279,6 +8810,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -8329,6 +8863,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -8376,6 +8913,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -8424,6 +8964,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -8472,6 +9015,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -8520,6 +9066,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -8568,6 +9117,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -8616,6 +9168,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -8664,6 +9219,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -8713,6 +9271,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -8762,6 +9323,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -8811,6 +9375,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 192, "linux_binprm_envc_offset": 196, "linux_binprm_p_offset": 152, @@ -8860,6 +9427,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 200, "linux_binprm_envc_offset": 204, "linux_binprm_p_offset": 152, @@ -8908,6 +9478,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 200, "linux_binprm_envc_offset": 204, "linux_binprm_p_offset": 152, @@ -8956,6 +9529,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 200, "linux_binprm_envc_offset": 204, "linux_binprm_p_offset": 152, @@ -9004,6 +9580,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 200, "linux_binprm_envc_offset": 204, "linux_binprm_p_offset": 152, @@ -9052,6 +9631,9 @@ "flowi4_uli_offset": 40, "flowi6_saddr_offset": 48, "flowi6_uli_offset": 68, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "linux_binprm_argc_offset": 200, "linux_binprm_envc_offset": 204, "linux_binprm_p_offset": 152, @@ -9100,6 +9682,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -9150,6 +9735,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -9200,6 +9788,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -9250,6 +9841,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -9300,6 +9894,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -9350,6 +9947,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -9400,6 +10000,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -9450,6 +10053,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -9500,6 +10106,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -9550,6 +10159,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -9600,6 +10212,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -9650,6 +10265,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -9700,6 +10318,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -9750,6 +10371,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 88, @@ -9799,6 +10423,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 88, @@ -9848,6 +10475,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -9898,6 +10528,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -9948,6 +10581,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -9998,6 +10634,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -10048,6 +10687,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -10098,6 +10740,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 88, @@ -10147,6 +10792,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 88, @@ -10196,6 +10844,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 88, @@ -10245,6 +10896,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 88, @@ -10294,6 +10948,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 88, @@ -10343,6 +11000,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -10393,6 +11053,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -10443,6 +11106,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -10493,6 +11159,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -10543,6 +11212,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -10593,6 +11265,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 88, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -10643,6 +11318,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -10693,6 +11371,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -10743,6 +11424,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -10793,6 +11477,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -10843,6 +11530,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -10893,6 +11583,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -10943,6 +11636,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -10993,6 +11689,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -11043,6 +11742,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 96, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 72, @@ -11093,6 +11795,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 88, @@ -11142,6 +11847,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 88, @@ -11191,6 +11899,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 88, @@ -11240,6 +11951,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 88, @@ -11289,6 +12003,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 88, @@ -11338,6 +12055,9 @@ "flowi4_uli_offset": 48, "flowi6_saddr_offset": 56, "flowi6_uli_offset": 76, + "inode_gid_offset": 8, + "inode_ino_offset": 64, + "inode_nlink_offset": 72, "iokiocb_ctx_offset": 80, "kernel_clone_args_exit_signal_offset": 32, "linux_binprm_argc_offset": 88, diff --git a/pkg/security/probe/constantfetch/constant_names.go b/pkg/security/probe/constantfetch/constant_names.go index 2feab9c5e0402..80d8b57c04a25 100644 --- a/pkg/security/probe/constantfetch/constant_names.go +++ b/pkg/security/probe/constantfetch/constant_names.go @@ -31,6 +31,13 @@ const ( OffsetNameDentryDSb = "dentry_d_sb_offset" OffsetNameMountMntID = "mount_id_offset" + // inode + OffsetInodeIno = "inode_ino_offset" + OffsetInodeNlink = "inode_nlink_offset" + OffsetInodeGid = "inode_gid_offset" + OffsetInodeMtime = "inode_mtime_offset" + OffsetInodeCtime = "inode_ctime_offset" + // inode times OffsetNameInodeCtimeSec = "inode_ctime_sec_offset" OffsetNameInodeCtimeNsec = "inode_ctime_nsec_offset" diff --git a/pkg/security/probe/constantfetch/fallback.go b/pkg/security/probe/constantfetch/fallback.go index 531edb59c29d3..3b48f14d1a5eb 100644 --- a/pkg/security/probe/constantfetch/fallback.go +++ b/pkg/security/probe/constantfetch/fallback.go @@ -147,6 +147,16 @@ func (f *FallbackConstantFetcher) appendRequest(id string) { value = getRenameStructOldDentryOffset(f.kernelVersion) case OffsetNameRenameStructNewDentry: value = getRenameStructNewDentryOffset(f.kernelVersion) + case OffsetInodeIno: + value = getInodeInoOffset(f.kernelVersion) + case OffsetInodeGid: + value = getInodeGIDOffset(f.kernelVersion) + case OffsetInodeNlink: + value = getInodeNlinkOffset(f.kernelVersion) + case OffsetInodeMtime: + value = getInodeMtimeOffset(f.kernelVersion) + case OffsetInodeCtime: + value = getInodeCtimeOffset(f.kernelVersion) } f.res[id] = value } @@ -236,6 +246,26 @@ func getSizeOfStructInode(kv *kernel.Version) uint64 { return sizeOf } +func getInodeInoOffset(_ *kernel.Version) uint64 { + return uint64(64) +} + +func getInodeGIDOffset(_ *kernel.Version) uint64 { + return uint64(8) +} + +func getInodeNlinkOffset(_ *kernel.Version) uint64 { + return uint64(72) +} + +func getInodeMtimeOffset(_ *kernel.Version) uint64 { + return uint64(104) +} + +func getInodeCtimeOffset(_ *kernel.Version) uint64 { + return uint64(120) +} + func getSuperBlockFlagsOffset(_ *kernel.Version) uint64 { return uint64(80) } diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go index 5fd26b4f63f8a..c519c712f6fc0 100644 --- a/pkg/security/probe/probe_ebpf.go +++ b/pkg/security/probe/probe_ebpf.go @@ -2521,6 +2521,13 @@ func AppendProbeRequestsToFetcher(constantFetcher constantfetch.ConstantFetcher, if kv.Code != 0 && (kv.Code >= kernel.Kernel5_1) { constantFetcher.AppendOffsetofRequest(constantfetch.OffsetNameIoKiocbStructCtx, "struct io_kiocb", "ctx", "") } + + // inode + constantFetcher.AppendOffsetofRequest(constantfetch.OffsetInodeIno, "struct inode", "i_ino", "linux/fs.h") + constantFetcher.AppendOffsetofRequest(constantfetch.OffsetInodeGid, "struct inode", "i_gid", "linux/fs.h") + constantFetcher.AppendOffsetofRequest(constantfetch.OffsetInodeNlink, "struct inode", "i_nlink", "linux/fs.h") + constantFetcher.AppendOffsetofRequest(constantfetch.OffsetInodeMtime, "struct inode", "__i_mtime", "linux/fs.h") + constantFetcher.AppendOffsetofRequest(constantfetch.OffsetInodeCtime, "struct inode", "__i_ctime", "linux/fs.h") } // HandleActions handles the rule actions diff --git a/pkg/security/resolvers/process/resolver_ebpf.go b/pkg/security/resolvers/process/resolver_ebpf.go index 409ab86fc2da7..030b022a01c4a 100644 --- a/pkg/security/resolvers/process/resolver_ebpf.go +++ b/pkg/security/resolvers/process/resolver_ebpf.go @@ -334,6 +334,9 @@ func (p *EBPFResolver) enrichEventFromProc(entry *model.ProcessCacheEntry, proc // Get the file fields of the process binary info, err := p.retrieveExecFileFields(procExecPath) if err != nil { + if !os.IsNotExist(err) { + seclog.Errorf("snapshot failed for %d: couldn't retrieve inode info: %s", proc.Pid, err) + } return fmt.Errorf("snapshot failed for %d: couldn't retrieve inode info: %w", proc.Pid, err) } @@ -465,11 +468,11 @@ func (p *EBPFResolver) enrichEventFromProc(entry *model.ProcessCacheEntry, proc func (p *EBPFResolver) retrieveExecFileFields(procExecPath string) (*model.FileFields, error) { fi, err := os.Stat(procExecPath) if err != nil { - return nil, fmt.Errorf("snapshot failed for `%s`: couldn't stat binary: %w", procExecPath, err) + return nil, err } stat, ok := fi.Sys().(*syscall.Stat_t) if !ok { - return nil, fmt.Errorf("snapshot failed for `%s`: couldn't stat binary", procExecPath) + return nil, errors.New("wrong type") } inode := stat.Ino @@ -483,11 +486,11 @@ func (p *EBPFResolver) retrieveExecFileFields(procExecPath string) (*model.FileF var fileFields model.FileFields if _, err := fileFields.UnmarshalBinary(data); err != nil { - return nil, fmt.Errorf("unable to unmarshal entry for inode `%d`", inode) + return nil, fmt.Errorf("unable to unmarshal entry for inode `%d`: %v", inode, err) } if fileFields.Inode == 0 { - return nil, errors.New("not found") + return nil, fmt.Errorf("inode `%d` not found: %v", inode, err) } return &fileFields, nil diff --git a/pkg/serverless/logs/logs_test.go b/pkg/serverless/logs/logs_test.go index 6a8f0d30d3cb0..132efb75bbcaa 100644 --- a/pkg/serverless/logs/logs_test.go +++ b/pkg/serverless/logs/logs_test.go @@ -224,7 +224,7 @@ func TestProcessMessageValid(t *testing.T) { lc.processMessage(&message) - received, timed := demux.WaitForNumberOfSamples(7, 0, 100*time.Millisecond) + received, timed := demux.WaitForNumberOfSamples(7, 0, 125*time.Millisecond) assert.Len(t, received, 7) assert.Len(t, timed, 0) demux.Reset() @@ -232,7 +232,7 @@ func TestProcessMessageValid(t *testing.T) { lc.enhancedMetricsEnabled = false lc.processMessage(&message) - received, timed = demux.WaitForSamples(100 * time.Millisecond) + received, timed = demux.WaitForSamples(125 * time.Millisecond) assert.Len(t, received, 0, "we should NOT have received metrics") assert.Len(t, timed, 0) } @@ -366,7 +366,7 @@ func TestProcessMessageShouldNotProcessArnNotSet(t *testing.T) { go lc.processMessage(message) - received, timed := demux.WaitForSamples(100 * time.Millisecond) + received, timed := demux.WaitForSamples(125 * time.Millisecond) assert.Len(t, received, 0, "We should NOT have received metrics") assert.Len(t, timed, 0) } @@ -394,7 +394,7 @@ func TestProcessMessageShouldNotProcessLogsDropped(t *testing.T) { go lc.processMessage(message) - received, timed := demux.WaitForSamples(100 * time.Millisecond) + received, timed := demux.WaitForSamples(125 * time.Millisecond) assert.Len(t, received, 0, "We should NOT have received metrics") assert.Len(t, timed, 0) } @@ -424,11 +424,13 @@ func TestProcessMessageShouldProcessLogTypeFunctionOutOfMemory(t *testing.T) { go lc.processMessage(message) - received, timed := demux.WaitForNumberOfSamples(2, 0, 100*time.Millisecond) + received, timed := demux.WaitForNumberOfSamples(2, 0, 125*time.Millisecond) assert.Len(t, received, 2) assert.Len(t, timed, 0) - assert.Equal(t, serverlessMetrics.OutOfMemoryMetric, received[0].Name) - assert.Equal(t, serverlessMetrics.ErrorsMetric, received[1].Name) + if len(received) == 2 { + assert.Equal(t, serverlessMetrics.OutOfMemoryMetric, received[0].Name) + assert.Equal(t, serverlessMetrics.ErrorsMetric, received[1].Name) + } } func TestProcessMessageShouldProcessLogTypePlatformReportOutOfMemory(t *testing.T) { @@ -465,7 +467,7 @@ func TestProcessMessageShouldProcessLogTypePlatformReportOutOfMemory(t *testing. go lc.processMessage(message) - received, timed := demux.WaitForNumberOfSamples(2, 0, 100*time.Millisecond) + received, timed := demux.WaitForNumberOfSamples(2, 0, 125*time.Millisecond) assert.Len(t, received, 8) assert.Len(t, timed, 0) assert.Equal(t, serverlessMetrics.OutOfMemoryMetric, received[6].Name) @@ -497,7 +499,7 @@ func TestProcessMessageShouldSendFailoverMetric(t *testing.T) { lc.processMessage(&message) - received, timed := demux.WaitForNumberOfSamples(1, 0, 100*time.Millisecond) + received, timed := demux.WaitForNumberOfSamples(1, 0, 125*time.Millisecond) assert.Len(t, received, 1) assert.Len(t, timed, 0) demux.Reset() @@ -507,7 +509,7 @@ func TestProcessMessageShouldSendFailoverMetric(t *testing.T) { message.stringRecord = "{\"DD_EXTENSION_FALLBACK_REASON\":\"test-reason\"}" // add again bc processing empties it lc.processMessage(&message) - received, timed = demux.WaitForNumberOfSamples(1, 0, 100*time.Millisecond) + received, timed = demux.WaitForNumberOfSamples(1, 0, 125*time.Millisecond) assert.Len(t, received, 1) assert.Len(t, timed, 0) } @@ -549,7 +551,7 @@ func TestProcessLogMessageLogsEnabled(t *testing.T) { assert.NotNil(t, received) assert.Equal(t, "my-arn", received.Lambda.ARN) assert.Equal(t, "myRequestID", received.Lambda.RequestID) - case <-time.After(100 * time.Millisecond): + case <-time.After(125 * time.Millisecond): assert.Fail(t, "We should have received logs") } } @@ -597,7 +599,7 @@ func TestProcessLogMessageLogsEnabledForMixedUnorderedMessages(t *testing.T) { assert.NotNil(t, received) assert.Equal(t, "my-arn", received.Lambda.ARN) assert.Equal(t, expectedRequestIDs[i], received.Lambda.RequestID) - case <-time.After(100 * time.Millisecond): + case <-time.After(125 * time.Millisecond): assert.Fail(t, "We should have received logs") } } @@ -628,7 +630,7 @@ func TestProcessLogMessageNoStringRecordPlatformLog(t *testing.T) { select { case <-logChannel: assert.Fail(t, "We should not have received logs") - case <-time.After(100 * time.Millisecond): + case <-time.After(125 * time.Millisecond): // nothing to do here } } @@ -663,7 +665,7 @@ func TestProcessLogMessageNoStringRecordFunctionLog(t *testing.T) { assert.NotNil(t, received) assert.Equal(t, "my-arn", received.Lambda.ARN) assert.Equal(t, "myRequestID", received.Lambda.RequestID) - case <-time.After(100 * time.Millisecond): + case <-time.After(125 * time.Millisecond): assert.Fail(t, "We should have received logs") } } @@ -700,7 +702,7 @@ func TestProcessLogMessageLogsNotEnabled(t *testing.T) { select { case <-logChannel: assert.Fail(t, "We should not have received logs") - case <-time.After(100 * time.Millisecond): + case <-time.After(125 * time.Millisecond): // nothing to do here } } @@ -763,7 +765,7 @@ func TestProcessLogMessagesTimeoutLogFromReportLog(t *testing.T) { assert.Equal(t, "myRequestID", received.Lambda.RequestID) assert.Equal(t, expectedStringRecord[i], string(received.Content)) assert.Equal(t, expectedErrors[i], received.IsError) - case <-time.After(100 * time.Millisecond): + case <-time.After(125 * time.Millisecond): assert.Fail(t, "We should have received logs") } } @@ -858,7 +860,7 @@ func TestProcessMultipleLogMessagesTimeoutLogFromReportLog(t *testing.T) { } else { assert.False(t, received.IsError) } - case <-time.After(100 * time.Millisecond): + case <-time.After(125 * time.Millisecond): assert.Fail(t, "We should have received logs") } } @@ -904,7 +906,7 @@ func TestProcessLogMessagesOutOfMemoryError(t *testing.T) { assert.Equal(t, "my-arn", received.Lambda.ARN) assert.Equal(t, "myRequestID", received.Lambda.RequestID) assert.Equal(t, true, received.IsError) - case <-time.After(100 * time.Millisecond): + case <-time.After(125 * time.Millisecond): assert.Fail(t, "We should have received logs") } } @@ -943,7 +945,7 @@ func TestProcessLogMessageLogsNoRequestID(t *testing.T) { select { case <-logChannel: assert.Fail(t, "We should not have received logs") - case <-time.After(100 * time.Millisecond): + case <-time.After(125 * time.Millisecond): // nothing to do here } @@ -952,7 +954,7 @@ func TestProcessLogMessageLogsNoRequestID(t *testing.T) { for _, msg := range received { assert.Equal(t, "", msg.objectRecord.requestID) } - case <-time.After(100 * time.Millisecond): + case <-time.After(125 * time.Millisecond): assert.Fail(t, "We should have received logs") } } @@ -1228,7 +1230,7 @@ func TestRuntimeMetricsMatchLogs(t *testing.T) { lc.processMessage(doneMessage) lc.processMessage(reportMessage) - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(10, 0, 100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(10, 0, 125*time.Millisecond) postRuntimeMetricTimestamp := float64(reportLogTime.UnixNano()) / float64(time.Second) runtimeMetricTimestamp := float64(endTime.UnixNano()) / float64(time.Second) assert.Equal(t, generatedMetrics[0], metrics.MetricSample{ @@ -1314,7 +1316,7 @@ func TestRuntimeMetricsMatchLogsProactiveInit(t *testing.T) { lc.processMessage(doneMessage) lc.processMessage(reportMessage) - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(10, 0, 100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(10, 0, 125*time.Millisecond) postRuntimeMetricTimestamp := float64(reportLogTime.UnixNano()) / float64(time.Second) runtimeMetricTimestamp := float64(endTime.UnixNano()) / float64(time.Second) assert.Equal(t, generatedMetrics[0], metrics.MetricSample{ @@ -1416,7 +1418,7 @@ func TestRuntimeMetricsOnTimeout(t *testing.T) { assert.Nil(t, restoreErr) lc.processMessage(reportMessage) - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(10, 0, 100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(10, 0, 125*time.Millisecond) postRuntimeMetricTimestamp := float64(reportLogTime.UnixNano()) / float64(time.Second) runtimeMetricTimestamp := float64(endTime.UnixNano()) / float64(time.Second) assert.Equal(t, generatedMetrics[0], metrics.MetricSample{ diff --git a/pkg/serverless/metrics/enhanced_metrics_test.go b/pkg/serverless/metrics/enhanced_metrics_test.go index ea6619861f726..9c6f9472ee756 100644 --- a/pkg/serverless/metrics/enhanced_metrics_test.go +++ b/pkg/serverless/metrics/enhanced_metrics_test.go @@ -34,7 +34,7 @@ func TestGenerateEnhancedMetricsFromFunctionLogOutOfMemory(t *testing.T) { GenerateOutOfMemoryEnhancedMetrics(reportLogTime, tags, demux) } - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(2, 0, 100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(2, 0, 125*time.Millisecond) assert.True(t, isOOM) assert.Len(t, generatedMetrics, 2, "two enhanced metrics should have been generated") assert.Len(t, timedMetrics, 0) @@ -63,7 +63,7 @@ func TestGenerateEnhancedMetricsFromFunctionLogNoMetric(t *testing.T) { GenerateOutOfMemoryEnhancedMetrics(time.Now(), tags, demux) } - generatedMetrics, timedMetrics := demux.WaitForSamples(100 * time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForSamples(125 * time.Millisecond) assert.False(t, isOOM) assert.Len(t, generatedMetrics, 0, "no metrics should have been generated") assert.Len(t, timedMetrics, 0) @@ -89,7 +89,7 @@ func TestGenerateEnhancedMetricsFromReportLogColdStart(t *testing.T) { } go GenerateEnhancedMetricsFromReportLog(args) - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(7, 0, 100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(7, 0, 125*time.Millisecond) assert.Equal(t, generatedMetrics[:7], []metrics.MetricSample{{ Name: maxMemoryUsedMetric, @@ -164,7 +164,7 @@ func TestGenerateEnhancedMetricsFromReportLogNoColdStart(t *testing.T) { } go GenerateEnhancedMetricsFromReportLog(args) - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(6, 0, 0100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(6, 0, 125*time.Millisecond) assert.Equal(t, generatedMetrics[:6], []metrics.MetricSample{{ Name: maxMemoryUsedMetric, @@ -218,7 +218,7 @@ func TestSendTimeoutEnhancedMetric(t *testing.T) { go SendTimeoutEnhancedMetric(tags, demux) - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(1, 0, 100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(1, 0, 125*time.Millisecond) assert.Equal(t, generatedMetrics[:1], []metrics.MetricSample{{ Name: timeoutsMetric, @@ -238,7 +238,7 @@ func TestSendInvocationEnhancedMetric(t *testing.T) { go SendInvocationEnhancedMetric(tags, demux) - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(1, 0, 100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(1, 0, 125*time.Millisecond) assert.Equal(t, generatedMetrics[:1], []metrics.MetricSample{{ Name: invocationsMetric, @@ -264,7 +264,7 @@ func TestDisableEnhancedMetrics(t *testing.T) { SendInvocationEnhancedMetric(tags, demux) }() - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(1, 0, 100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(1, 0, 125*time.Millisecond) assert.Len(t, generatedMetrics, 0) assert.Len(t, timedMetrics, 0) @@ -279,7 +279,7 @@ func TestSendOutOfMemoryEnhancedMetric(t *testing.T) { mockTime := time.Now() go SendOutOfMemoryEnhancedMetric(tags, mockTime, demux) - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(1, 0, 100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(1, 0, 125*time.Millisecond) assert.Equal(t, generatedMetrics[:1], []metrics.MetricSample{{ Name: OutOfMemoryMetric, @@ -298,7 +298,7 @@ func TestSendErrorsEnhancedMetric(t *testing.T) { mockTime := time.Now() go SendErrorsEnhancedMetric(tags, mockTime, demux) - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(1, 0, 100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(1, 0, 125*time.Millisecond) assert.Equal(t, generatedMetrics[:1], []metrics.MetricSample{{ Name: ErrorsMetric, @@ -366,7 +366,7 @@ func TestGenerateEnhancedMetricsFromRuntimeDoneLogNoStartDate(t *testing.T) { Demux: demux, } go GenerateEnhancedMetricsFromRuntimeDoneLog(args) - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(3, 0, 100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(3, 0, 125*time.Millisecond) assert.Equal(t, generatedMetrics, []metrics.MetricSample{{ Name: responseLatencyMetric, Value: 19, @@ -407,7 +407,7 @@ func TestGenerateEnhancedMetricsFromRuntimeDoneLogNoEndDate(t *testing.T) { Demux: demux, } go GenerateEnhancedMetricsFromRuntimeDoneLog(args) - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(3, 0, 100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(3, 0, 125*time.Millisecond) assert.Equal(t, generatedMetrics, []metrics.MetricSample{{ Name: responseLatencyMetric, Value: 19, @@ -448,7 +448,7 @@ func TestGenerateEnhancedMetricsFromRuntimeDoneLogOK(t *testing.T) { Demux: demux, } go GenerateEnhancedMetricsFromRuntimeDoneLog(args) - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(4, 0, 100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(4, 0, 125*time.Millisecond) assert.Equal(t, generatedMetrics, []metrics.MetricSample{{ Name: runtimeDurationMetric, Value: 153, @@ -487,7 +487,7 @@ func TestGenerateCPUEnhancedMetrics(t *testing.T) { now := float64(time.Now().UnixNano()) / float64(time.Second) args := generateCPUEnhancedMetricsArgs{100, 53, 200, tags, demux, now} go generateCPUEnhancedMetrics(args) - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(4, 0, 100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(4, 0, 125*time.Millisecond) assert.Equal(t, []metrics.MetricSample{ { Name: cpuSystemTimeMetric, @@ -530,7 +530,7 @@ func TestDisableCPUEnhancedMetrics(t *testing.T) { SendCPUEnhancedMetrics(&proc.CPUData{}, 0, tags, demux) }() - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(1, 0, 100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(1, 0, 125*time.Millisecond) assert.Len(t, generatedMetrics, 0) assert.Len(t, timedMetrics, 0) @@ -560,7 +560,7 @@ func TestGenerateCPUUtilizationEnhancedMetrics(t *testing.T) { Time: now, } go GenerateCPUUtilizationEnhancedMetrics(args) - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(5, 0, 100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(5, 0, 125*time.Millisecond) assert.Equal(t, []metrics.MetricSample{ { Name: cpuTotalUtilizationPctMetric, @@ -621,7 +621,7 @@ func TestGenerateNetworkEnhancedMetrics(t *testing.T) { Time: now, } go generateNetworkEnhancedMetrics(args) - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(3, 0, 100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(3, 0, 125*time.Millisecond) assert.Equal(t, []metrics.MetricSample{ { Name: rxBytesMetric, @@ -664,7 +664,7 @@ func TestNetworkEnhancedMetricsDisabled(t *testing.T) { SendNetworkEnhancedMetrics(&proc.NetworkData{}, tags, demux) }() - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(1, 0, 100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(1, 0, 125*time.Millisecond) assert.Len(t, generatedMetrics, 0) assert.Len(t, timedMetrics, 0) @@ -685,7 +685,7 @@ func TestSendTmpEnhancedMetrics(t *testing.T) { Time: now, } go generateTmpEnhancedMetrics(args) - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(3, 0, 100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(3, 0, 125*time.Millisecond) assert.Equal(t, []metrics.MetricSample{ { Name: tmpUsedMetric, @@ -722,7 +722,7 @@ func TestSendTmpEnhancedMetricsDisabled(t *testing.T) { SendTmpEnhancedMetrics(make(chan bool), tags, &metricAgent) }() - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(1, 0, 100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(1, 0, 125*time.Millisecond) assert.Len(t, generatedMetrics, 0) assert.Len(t, timedMetrics, 0) @@ -743,7 +743,7 @@ func TestSendFdEnhancedMetrics(t *testing.T) { Time: now, } go generateFdEnhancedMetrics(args) - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(3, 0, 100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(3, 0, 125*time.Millisecond) assert.Equal(t, []metrics.MetricSample{ { Name: fdMaxMetric, @@ -779,7 +779,7 @@ func TestSendThreadEnhancedMetrics(t *testing.T) { Time: now, } go generateThreadEnhancedMetrics(args) - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(3, 0, 100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(3, 0, 125*time.Millisecond) assert.Equal(t, []metrics.MetricSample{ { Name: threadsMaxMetric, @@ -816,7 +816,7 @@ func TestSendProcessEnhancedMetricsDisabled(t *testing.T) { SendProcessEnhancedMetrics(make(chan bool), tags, &metricAgent) }() - generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(1, 0, 100*time.Millisecond) + generatedMetrics, timedMetrics := demux.WaitForNumberOfSamples(1, 0, 125*time.Millisecond) assert.Len(t, generatedMetrics, 0) assert.Len(t, timedMetrics, 0) @@ -829,7 +829,7 @@ func TestSendFailoverReasonMetric(t *testing.T) { demux := createDemultiplexer(t) tags := []string{"reason:test-reason"} go SendFailoverReasonMetric(tags, demux) - generatedMetrics, _ := demux.WaitForNumberOfSamples(1, 0, 100*time.Millisecond) + generatedMetrics, _ := demux.WaitForNumberOfSamples(1, 0, 125*time.Millisecond) assert.Len(t, generatedMetrics, 1) } diff --git a/pkg/status/systemprobe/status.go b/pkg/status/systemprobe/status.go index 533b94e1f3981..c6cb485094974 100644 --- a/pkg/status/systemprobe/status.go +++ b/pkg/status/systemprobe/status.go @@ -3,8 +3,6 @@ // This product includes software developed at Datadog (https://www.datadoghq.com/). // Copyright 2016-present Datadog, Inc. -//go:build process - // Package systemprobe fetch information about the system probe package systemprobe diff --git a/pkg/status/systemprobe/status_unsupported.go b/pkg/status/systemprobe/status_unsupported.go deleted file mode 100644 index 31c2523258659..0000000000000 --- a/pkg/status/systemprobe/status_unsupported.go +++ /dev/null @@ -1,26 +0,0 @@ -// Unless explicitly stated otherwise all files in this repository are licensed -// under the Apache License Version 2.0. -// This product includes software developed at Datadog (https://www.datadoghq.com/). -// Copyright 2016-present Datadog, Inc. - -//go:build !process - -// Package systemprobe fetch information about the system probe -package systemprobe - -import ( - "github.com/DataDog/datadog-agent/comp/core/status" - "github.com/DataDog/datadog-agent/comp/core/sysprobeconfig" -) - -// GetStatus returns a notice that it is not supported on systems that do not at least build the process agent -func GetStatus(stats map[string]interface{}, _ string) { - stats["systemProbeStats"] = map[string]interface{}{ - "Errors": "System Probe is not supported on this system", - } -} - -// GetProvider returns nil -func GetProvider(_ sysprobeconfig.Component) status.Provider { - return nil -} diff --git a/pkg/trace/api/api_test.go b/pkg/trace/api/api_test.go index 2a1bdafe71307..3d43d0dbe3c6e 100644 --- a/pkg/trace/api/api_test.go +++ b/pkg/trace/api/api_test.go @@ -1042,14 +1042,26 @@ func TestExpvar(t *testing.T) { } c := newTestReceiverConfig() - c.DebugServerPort = 5012 + c.DebugServerPort = 6789 info.InitInfo(c) + + // Starting a TLS httptest server to retrieve tlsCert + ts := httptest.NewTLSServer(http.HandlerFunc(func(_ http.ResponseWriter, _ *http.Request) {})) + tlsConfig := ts.TLS.Clone() + // Setting a client with the proper TLS configuration + client := ts.Client() + ts.Close() + + // Starting Debug Server s := NewDebugServer(c) + s.SetTLSConfig(tlsConfig) + + // Starting the Debug server s.Start() defer s.Stop() - resp, err := http.Get("http://127.0.0.1:5012/debug/vars") - assert.NoError(t, err) + resp, err := client.Get(fmt.Sprintf("https://127.0.0.1:%d/debug/vars", c.DebugServerPort)) + require.NoError(t, err) defer resp.Body.Close() t.Run("read-expvars", func(t *testing.T) { diff --git a/pkg/trace/api/debug_server.go b/pkg/trace/api/debug_server.go index 828d5357330eb..6fd2f39cc011a 100644 --- a/pkg/trace/api/debug_server.go +++ b/pkg/trace/api/debug_server.go @@ -9,6 +9,7 @@ package api import ( "context" + "crypto/tls" "expvar" "fmt" "net" @@ -29,9 +30,10 @@ const ( // DebugServer serves /debug/* endpoints type DebugServer struct { - conf *config.AgentConfig - server *http.Server - mux *http.ServeMux + conf *config.AgentConfig + server *http.Server + mux *http.ServeMux + tlsConfig *tls.Config } // NewDebugServer returns a debug server @@ -53,13 +55,14 @@ func (ds *DebugServer) Start() { WriteTimeout: defaultTimeout, Handler: ds.setupMux(), } - listener, err := net.Listen("tcp", fmt.Sprintf("127.0.0.1:%d", ds.conf.DebugServerPort)) + listener, err := net.Listen("tcp", net.JoinHostPort("127.0.0.1", strconv.Itoa(ds.conf.DebugServerPort))) if err != nil { log.Errorf("Error creating debug server listener: %s", err) return } + tlsListener := tls.NewListener(listener, ds.tlsConfig) go func() { - if err := ds.server.Serve(listener); err != nil && err != http.ErrServerClosed { + if err := ds.server.Serve(tlsListener); err != nil && err != http.ErrServerClosed { log.Errorf("Could not start debug server: %s. Debug server disabled.", err) } }() @@ -82,6 +85,11 @@ func (ds *DebugServer) AddRoute(route string, handler http.Handler) { ds.mux.Handle(route, handler) } +// SetTLSConfig adds the provided tls.Config to the internal http.Server +func (ds *DebugServer) SetTLSConfig(config *tls.Config) { + ds.tlsConfig = config +} + func (ds *DebugServer) setupMux() *http.ServeMux { ds.mux.HandleFunc("/debug/pprof/", pprof.Index) ds.mux.HandleFunc("/debug/pprof/cmdline", pprof.Cmdline) diff --git a/pkg/trace/info/info.go b/pkg/trace/info/info.go index df86c40587fdc..4198100ee6a5b 100644 --- a/pkg/trace/info/info.go +++ b/pkg/trace/info/info.go @@ -8,6 +8,7 @@ package info import ( "bytes" + "crypto/tls" "encoding/json" "expvar" // automatically publish `/debug/vars` on HTTP port "fmt" @@ -236,8 +237,9 @@ func getProgramBanner(version string) (string, string) { // If error is nil, means the program is running. // If not, it displays a pretty-printed message anyway (for support) func Info(w io.Writer, conf *config.AgentConfig) error { - url := fmt.Sprintf("http://127.0.0.1:%d/debug/vars", conf.DebugServerPort) - client := http.Client{Timeout: 3 * time.Second} + url := fmt.Sprintf("https://127.0.0.1:%d/debug/vars", conf.DebugServerPort) + tr := &http.Transport{TLSClientConfig: &tls.Config{InsecureSkipVerify: true}} + client := http.Client{Timeout: 3 * time.Second, Transport: tr} resp, err := client.Get(url) if err != nil { // OK, here, we can't even make an http call on the agent port, diff --git a/pkg/trace/info/info_test.go b/pkg/trace/info/info_test.go index 01c369cac403e..25b7cb42b13ff 100644 --- a/pkg/trace/info/info_test.go +++ b/pkg/trace/info/info_test.go @@ -63,7 +63,7 @@ func (h *testServerHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { func testServer(t *testing.T, testFile string) *httptest.Server { t.Helper() - server := httptest.NewServer(&testServerHandler{t: t, testFile: testFile}) + server := httptest.NewTLSServer(&testServerHandler{t: t, testFile: testFile}) t.Logf("test server (serving fake yet valid data) listening on %s", server.URL) return server } @@ -94,7 +94,7 @@ func (h *testServerWarningHandler) ServeHTTP(w http.ResponseWriter, r *http.Requ } func testServerWarning(t *testing.T) *httptest.Server { - server := httptest.NewServer(&testServerWarningHandler{t: t}) + server := httptest.NewTLSServer(&testServerWarningHandler{t: t}) t.Logf("test server (serving data containing worrying values) listening on %s", server.URL) return server } @@ -119,7 +119,7 @@ func (h *testServerErrorHandler) ServeHTTP(w http.ResponseWriter, r *http.Reques } func testServerError(t *testing.T) *httptest.Server { - server := httptest.NewServer(&testServerErrorHandler{t: t}) + server := httptest.NewTLSServer(&testServerErrorHandler{t: t}) t.Logf("test server (serving bad data to trigger errors) listening on %s", server.URL) return server } @@ -331,7 +331,7 @@ func TestError(t *testing.T) { assert.Equal(len(lines[1]), len(lines[2])) assert.Equal("", lines[3]) assert.Regexp(regexp.MustCompile(`^ Error: .*$`), lines[4]) - assert.Equal(fmt.Sprintf(" URL: http://127.0.0.1:%d/debug/vars", port), lines[5]) + assert.Equal(fmt.Sprintf(" URL: https://127.0.0.1:%d/debug/vars", port), lines[5]) assert.Equal("", lines[6]) assert.Equal("", lines[7]) } diff --git a/releasenotes/notes/add-integration-field-to-topology-link-metadata-8a35c0a70ac80b1e.yaml b/releasenotes/notes/add-integration-field-to-topology-link-metadata-8a35c0a70ac80b1e.yaml new file mode 100644 index 0000000000000..003ca577e3799 --- /dev/null +++ b/releasenotes/notes/add-integration-field-to-topology-link-metadata-8a35c0a70ac80b1e.yaml @@ -0,0 +1,12 @@ +# Each section from every release note are combined when the +# CHANGELOG.rst is rendered. So the text needs to be worded so that +# it does not depend on any information only available in another +# section. This may mean repeating some details, but each section +# must be readable independently of the other. +# +# Each section note must be formatted as reStructuredText. +--- +enhancements: + - | + Emit new field: integration for TopologyLinkMetadata for better metrics collection. + diff --git a/tasks/agent.py b/tasks/agent.py index 19cd6170b96c6..84d1134310965 100644 --- a/tasks/agent.py +++ b/tasks/agent.py @@ -352,9 +352,8 @@ def refresh_assets(_, build_tags, development=True, flavor=AgentFlavor.base.name check_dir = os.path.join(dist_folder, f"conf.d/{check}.d/") shutil.copytree(f"./cmd/agent/dist/conf.d/{check}.d/", check_dir, dirs_exist_ok=True) - if "apm" in build_tags: + if sys.platform == 'darwin': shutil.copy("./cmd/agent/dist/conf.d/apm.yaml.default", os.path.join(dist_folder, "conf.d/apm.yaml.default")) - if "process" in build_tags: shutil.copy( "./cmd/agent/dist/conf.d/process_agent.yaml.default", os.path.join(dist_folder, "conf.d/process_agent.yaml.default"), diff --git a/tasks/build_tags.py b/tasks/build_tags.py index c400d2560aa94..9f58d3e45c60a 100644 --- a/tasks/build_tags.py +++ b/tasks/build_tags.py @@ -17,7 +17,6 @@ # ALL_TAGS lists all available build tags. # Used to remove unknown tags from provided tag lists. ALL_TAGS = { - "apm", "clusterchecks", "consul", "containerd", @@ -40,7 +39,6 @@ "otlp", "pcap", # used by system-probe to compile packet filters using google/gopacket/pcap, which requires cgo to link libpcap "podman", - "process", "python", "sds", "serverless", @@ -58,7 +56,6 @@ # AGENT_TAGS lists the tags needed when building the agent. AGENT_TAGS = { - "apm", "consul", "containerd", "cri", @@ -76,7 +73,6 @@ "orchestrator", "otlp", "podman", - "process", "python", "systemd", "trivy", @@ -166,7 +162,6 @@ "netcgo", "npm", "pcap", - "process", "trivy", "zlib", "zstd", diff --git a/test/integration/serverless_perf/compute.sh b/test/integration/serverless_perf/compute.sh index c8421c24a84c9..06be249e90867 100755 --- a/test/integration/serverless_perf/compute.sh +++ b/test/integration/serverless_perf/compute.sh @@ -2,7 +2,7 @@ set -o pipefail -STARTUP_TIME_THRESHOLD=25 +STARTUP_TIME_THRESHOLD=28 calculate_median() { local sorted=($(printf "%s\n" "${@}" | sort -n)) diff --git a/test/new-e2e/tests/agent-shared-components/config-refresh/config_endpoint.go b/test/new-e2e/tests/agent-shared-components/config-refresh/config_endpoint.go index 47c732d2569dc..356f76386e644 100644 --- a/test/new-e2e/tests/agent-shared-components/config-refresh/config_endpoint.go +++ b/test/new-e2e/tests/agent-shared-components/config-refresh/config_endpoint.go @@ -20,7 +20,7 @@ type agentConfigEndpointInfo struct { } func traceConfigEndpoint(port int) agentConfigEndpointInfo { - return agentConfigEndpointInfo{"trace-agent", "http", port, "/config"} + return agentConfigEndpointInfo{"trace-agent", "https", port, "/config"} } func processConfigEndpoint(port int) agentConfigEndpointInfo { diff --git a/test/regression/cases/file_to_blackhole_0ms_latency/experiment.yaml b/test/regression/cases/file_to_blackhole_0ms_latency/experiment.yaml index b445834c940d6..0d3dba0eb57f2 100644 --- a/test/regression/cases/file_to_blackhole_0ms_latency/experiment.yaml +++ b/test/regression/cases/file_to_blackhole_0ms_latency/experiment.yaml @@ -3,9 +3,8 @@ erratic: false target: name: datadog-agent - command: /bin/entrypoint.sh - cpu_allotment: 8 - memory_allotment: 30g + cpu_allotment: 4 + memory_allotment: 2GiB environment: DD_API_KEY: 00000001 diff --git a/test/regression/cases/file_to_blackhole_0ms_latency_http1/experiment.yaml b/test/regression/cases/file_to_blackhole_0ms_latency_http1/experiment.yaml index c51505add2bb6..0d3dba0eb57f2 100644 --- a/test/regression/cases/file_to_blackhole_0ms_latency_http1/experiment.yaml +++ b/test/regression/cases/file_to_blackhole_0ms_latency_http1/experiment.yaml @@ -3,9 +3,8 @@ erratic: false target: name: datadog-agent - command: /bin/entrypoint.sh - cpu_allotment: 8 - memory_allotment: 1.5GiB + cpu_allotment: 4 + memory_allotment: 2GiB environment: DD_API_KEY: 00000001 diff --git a/test/regression/cases/file_to_blackhole_0ms_latency_http2/experiment.yaml b/test/regression/cases/file_to_blackhole_0ms_latency_http2/experiment.yaml index c51505add2bb6..0d3dba0eb57f2 100644 --- a/test/regression/cases/file_to_blackhole_0ms_latency_http2/experiment.yaml +++ b/test/regression/cases/file_to_blackhole_0ms_latency_http2/experiment.yaml @@ -3,9 +3,8 @@ erratic: false target: name: datadog-agent - command: /bin/entrypoint.sh - cpu_allotment: 8 - memory_allotment: 1.5GiB + cpu_allotment: 4 + memory_allotment: 2GiB environment: DD_API_KEY: 00000001 diff --git a/test/regression/cases/file_to_blackhole_1000ms_latency/experiment.yaml b/test/regression/cases/file_to_blackhole_1000ms_latency/experiment.yaml index ccca15933f243..a1b83cb9c0a98 100644 --- a/test/regression/cases/file_to_blackhole_1000ms_latency/experiment.yaml +++ b/test/regression/cases/file_to_blackhole_1000ms_latency/experiment.yaml @@ -3,9 +3,8 @@ erratic: false target: name: datadog-agent - command: /bin/entrypoint.sh - cpu_allotment: 8 - memory_allotment: 4GiB + cpu_allotment: 4 + memory_allotment: 2GiB environment: DD_API_KEY: 00000001 diff --git a/test/regression/cases/file_to_blackhole_1000ms_latency_linear_load/experiment.yaml b/test/regression/cases/file_to_blackhole_1000ms_latency_linear_load/experiment.yaml index 215dcfa86cc48..b252bbe75d094 100644 --- a/test/regression/cases/file_to_blackhole_1000ms_latency_linear_load/experiment.yaml +++ b/test/regression/cases/file_to_blackhole_1000ms_latency_linear_load/experiment.yaml @@ -3,9 +3,8 @@ erratic: false target: name: datadog-agent - command: /bin/entrypoint.sh - cpu_allotment: 8 - memory_allotment: 30g + cpu_allotment: 4 + memory_allotment: 2GiB environment: DD_API_KEY: 00000001 diff --git a/test/regression/cases/file_to_blackhole_100ms_latency/experiment.yaml b/test/regression/cases/file_to_blackhole_100ms_latency/experiment.yaml index 68432ca735b1c..1db5b405767ff 100644 --- a/test/regression/cases/file_to_blackhole_100ms_latency/experiment.yaml +++ b/test/regression/cases/file_to_blackhole_100ms_latency/experiment.yaml @@ -3,9 +3,8 @@ erratic: false target: name: datadog-agent - command: /bin/entrypoint.sh - cpu_allotment: 8 - memory_allotment: 4GiB + cpu_allotment: 4 + memory_allotment: 2GiB environment: DD_API_KEY: 00000001 diff --git a/test/regression/cases/file_to_blackhole_500ms_latency/experiment.yaml b/test/regression/cases/file_to_blackhole_500ms_latency/experiment.yaml index 68432ca735b1c..1db5b405767ff 100644 --- a/test/regression/cases/file_to_blackhole_500ms_latency/experiment.yaml +++ b/test/regression/cases/file_to_blackhole_500ms_latency/experiment.yaml @@ -3,9 +3,8 @@ erratic: false target: name: datadog-agent - command: /bin/entrypoint.sh - cpu_allotment: 8 - memory_allotment: 4GiB + cpu_allotment: 4 + memory_allotment: 2GiB environment: DD_API_KEY: 00000001 diff --git a/test/regression/cases/file_tree/experiment.yaml b/test/regression/cases/file_tree/experiment.yaml index 6c67c51ef14a5..1edff05390f25 100644 --- a/test/regression/cases/file_tree/experiment.yaml +++ b/test/regression/cases/file_tree/experiment.yaml @@ -3,9 +3,8 @@ erratic: false target: name: datadog-agent - command: /bin/entrypoint.sh - cpu_allotment: 8 - memory_allotment: 4GiB + cpu_allotment: 4 + memory_allotment: 2GiB environment: DD_API_KEY: 00000001 diff --git a/test/regression/cases/otel_to_otel_logs/experiment.yaml b/test/regression/cases/otel_to_otel_logs/experiment.yaml index dfbe54658435f..e4b260015988f 100644 --- a/test/regression/cases/otel_to_otel_logs/experiment.yaml +++ b/test/regression/cases/otel_to_otel_logs/experiment.yaml @@ -3,7 +3,6 @@ erratic: false target: name: datadog-agent - command: /bin/entrypoint.sh cpu_allotment: 8 memory_allotment: 24GiB diff --git a/test/regression/cases/quality_gate_idle/experiment.yaml b/test/regression/cases/quality_gate_idle/experiment.yaml index 1c120a0d23187..d17ce5548c2fe 100644 --- a/test/regression/cases/quality_gate_idle/experiment.yaml +++ b/test/regression/cases/quality_gate_idle/experiment.yaml @@ -8,8 +8,7 @@ erratic: false target: name: datadog-agent - command: /bin/entrypoint.sh - cpu_allotment: 8 + cpu_allotment: 4 memory_allotment: 500MiB environment: @@ -36,7 +35,7 @@ checks: description: "Memory usage quality gate. This puts a bound on the total agent memory usage." bounds: series: total_rss_bytes - upper_bound: "365.0 MiB" + upper_bound: "372.0 MiB" report_links: - text: "bounds checks dashboard" diff --git a/test/regression/cases/quality_gate_idle_all_features/experiment.yaml b/test/regression/cases/quality_gate_idle_all_features/experiment.yaml index 2b16f4988c0b0..34e8e63fd4cf5 100644 --- a/test/regression/cases/quality_gate_idle_all_features/experiment.yaml +++ b/test/regression/cases/quality_gate_idle_all_features/experiment.yaml @@ -8,8 +8,7 @@ erratic: false target: name: datadog-agent - command: /bin/entrypoint.sh - cpu_allotment: 8 + cpu_allotment: 4 memory_allotment: 1GiB environment: @@ -47,7 +46,7 @@ checks: description: "Memory usage quality gate. This puts a bound on the total agent memory usage." bounds: series: total_rss_bytes - upper_bound: "755.0 MiB" + upper_bound: "779.0 MiB" report_links: - text: "bounds checks dashboard" diff --git a/test/regression/cases/quality_gate_logs/experiment.yaml b/test/regression/cases/quality_gate_logs/experiment.yaml index 761cae4678a8e..182f50e8679c4 100644 --- a/test/regression/cases/quality_gate_logs/experiment.yaml +++ b/test/regression/cases/quality_gate_logs/experiment.yaml @@ -3,9 +3,8 @@ erratic: false target: name: datadog-agent - command: /bin/entrypoint.sh - cpu_allotment: 8 - memory_allotment: 4GiB + cpu_allotment: 4 + memory_allotment: 500MiB environment: DD_API_KEY: 00000001 @@ -29,7 +28,7 @@ checks: description: "Memory usage" bounds: series: total_rss_bytes - upper_bound: 420MiB + upper_bound: 429MiB - name: lost_bytes description: "Allowable bytes not polled by log Agent" diff --git a/test/regression/cases/tcp_dd_logs_filter_exclude/experiment.yaml b/test/regression/cases/tcp_dd_logs_filter_exclude/experiment.yaml index 17a5adb011dd1..461bbc607eb8b 100644 --- a/test/regression/cases/tcp_dd_logs_filter_exclude/experiment.yaml +++ b/test/regression/cases/tcp_dd_logs_filter_exclude/experiment.yaml @@ -3,9 +3,8 @@ erratic: false target: name: datadog-agent - command: /bin/entrypoint.sh - cpu_allotment: 8 - memory_allotment: 4GiB + cpu_allotment: 4 + memory_allotment: 2GiB environment: DD_API_KEY: 00000001 diff --git a/test/regression/cases/tcp_syslog_to_blackhole/experiment.yaml b/test/regression/cases/tcp_syslog_to_blackhole/experiment.yaml index f9168734cf9e7..5de7351418822 100644 --- a/test/regression/cases/tcp_syslog_to_blackhole/experiment.yaml +++ b/test/regression/cases/tcp_syslog_to_blackhole/experiment.yaml @@ -3,9 +3,8 @@ erratic: false target: name: datadog-agent - command: /bin/entrypoint.sh - cpu_allotment: 8 - memory_allotment: 4GiB + cpu_allotment: 4 + memory_allotment: 2GiB environment: DD_API_KEY: 00000001 diff --git a/test/regression/cases/uds_dogstatsd_to_api/experiment.yaml b/test/regression/cases/uds_dogstatsd_to_api/experiment.yaml index fe93432493ecf..b8e40dac08462 100644 --- a/test/regression/cases/uds_dogstatsd_to_api/experiment.yaml +++ b/test/regression/cases/uds_dogstatsd_to_api/experiment.yaml @@ -3,9 +3,8 @@ erratic: false target: name: datadog-agent - command: /bin/entrypoint.sh - cpu_allotment: 8 - memory_allotment: 4GiB + cpu_allotment: 4 + memory_allotment: 2GiB environment: DD_API_KEY: 00000001 diff --git a/test/regression/cases/uds_dogstatsd_to_api_cpu/experiment.yaml b/test/regression/cases/uds_dogstatsd_to_api_cpu/experiment.yaml index ccb9f7b4e4866..c51909b2f72ee 100644 --- a/test/regression/cases/uds_dogstatsd_to_api_cpu/experiment.yaml +++ b/test/regression/cases/uds_dogstatsd_to_api_cpu/experiment.yaml @@ -3,9 +3,8 @@ erratic: false target: name: datadog-agent - command: /bin/entrypoint.sh - cpu_allotment: 8 - memory_allotment: 4GiB + cpu_allotment: 4 + memory_allotment: 2GiB environment: DD_API_KEY: 00000001 diff --git a/test/regression/config.yaml b/test/regression/config.yaml index 4dcef653249aa..7a9684510426a 100644 --- a/test/regression/config.yaml +++ b/test/regression/config.yaml @@ -2,8 +2,6 @@ lading: version: 0.25.2 target: - cpu_allotment: 8 - memory_allotment: 30g # Link templates for reports. #