From 6385ce92e37727f0ca759ebf6be16f9dc09078ab Mon Sep 17 00:00:00 2001 From: Mikhail Klementev Date: Thu, 18 May 2023 18:13:09 +0000 Subject: [PATCH] feat!: rename supported kernels to targets BREAKING CHANGE: .out-of-tree.toml: s/[[supported_kernels]]/[[targets]]/ --- .github/workflows/ubuntu.yml | 2 +- config/config.go | 8 ++++---- config/config_test.go | 2 +- debug.go | 2 +- examples/kernel-exploit/.out-of-tree.toml | 12 ++++++------ examples/kernel-module/.out-of-tree.toml | 10 +++++----- examples/preload/.out-of-tree.toml | 2 +- examples/script/.out-of-tree.toml | 2 +- gen.go | 4 ++-- kernel.go | 2 +- pew.go | 4 ++-- preload.go | 2 +- 12 files changed, 26 insertions(+), 26 deletions(-) diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index 2b5c0eb..e5f00c9 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -139,7 +139,7 @@ jobs: echo 'name = "test"' >> .out-of-tree.toml echo 'type = "${{ matrix.type }}"' >> .out-of-tree.toml echo 'script = "script.sh"' >> .out-of-tree.toml - echo '[[supported_kernels]]' >> .out-of-tree.toml + echo '[[targets]]' >> .out-of-tree.toml echo 'distro = { id = "${{ matrix.os.distro }}", release = "${{ matrix.os.release }}" }' >> .out-of-tree.toml echo 'release_mask = ".*"' >> .out-of-tree.toml diff --git a/config/config.go b/config/config.go index 0007206..a54e9b3 100644 --- a/config/config.go +++ b/config/config.go @@ -135,7 +135,7 @@ type Artifact struct { Type ArtifactType TestFiles []FileTransfer SourcePath string - SupportedKernels []KernelMask + Targets []KernelMask Script string @@ -187,7 +187,7 @@ func (ka Artifact) checkSupport(ki KernelInfo, km KernelMask) ( // Supported returns true if given kernel is supported by artifact func (ka Artifact) Supported(ki KernelInfo) (supported bool, err error) { - for _, km := range ka.SupportedKernels { + for _, km := range ka.Targets { supported, err = ka.checkSupport(ki, km) if supported { break @@ -331,8 +331,8 @@ func ReadArtifactConfig(path string) (ka Artifact, err error) { return } - for i, _ := range ka.SupportedKernels { - km := &ka.SupportedKernels[i] + for i, _ := range ka.Targets { + km := &ka.Targets[i] if len(km.Kernel.Version) != 0 && km.ReleaseMask != "" { s := "Only one way to define kernel version is allowed" err = errors.New(s) diff --git a/config/config_test.go b/config/config_test.go index ba8ce77..228964f 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -17,7 +17,7 @@ func TestMarshalUnmarshal(t *testing.T) { Name: "Put name here", Type: KernelModule, } - artifactCfg.SupportedKernels = append(artifactCfg.SupportedKernels, + artifactCfg.Targets = append(artifactCfg.Targets, KernelMask{distro.Distro{ ID: distro.Ubuntu, Release: "18.04", diff --git a/debug.go b/debug.go index 66e3612..d7a1683 100644 --- a/debug.go +++ b/debug.go @@ -229,7 +229,7 @@ func firstSupported(kcfg config.KernelConfig, ka config.Artifact, return } - ka.SupportedKernels = []config.KernelMask{km} + ka.Targets = []config.KernelMask{km} for _, ki = range kcfg.Kernels { var supported bool diff --git a/examples/kernel-exploit/.out-of-tree.toml b/examples/kernel-exploit/.out-of-tree.toml index 3db84f2..6e09ed4 100644 --- a/examples/kernel-exploit/.out-of-tree.toml +++ b/examples/kernel-exploit/.out-of-tree.toml @@ -3,15 +3,15 @@ name = "out-of-tree exploit example" type = "exploit" -[[supported_kernels]] +[[targets]] distro = { id = "Ubuntu", release = "16.04" } release_mask = "4[.]4[.]0-(1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100|101|102|103|104|105|106|107|108|109|110|111|112|113|114|115|116)-.*" -[[supported_kernels]] +[[targets]] distro = { id = "Ubuntu", release = "16.04" } release_mask = "4[.]8[.]0-(1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58)-.*" -[[supported_kernels]] +[[targets]] # Can be Ubuntu/CentOS/Debian/etc. distro = { id = "Ubuntu", release = "16.04" } # regex for `uname -r` @@ -19,14 +19,14 @@ distro = { id = "Ubuntu", release = "16.04" } # stupid way to generate: $ echo '4.4.0-('$(seq 44 | xargs echo | sed 's/ /|/g')')-.*' release_mask = "4[.]10[.]0-(1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42)-.*" -[[supported_kernels]] +[[targets]] distro = { id = "Ubuntu", release = "16.04" } release_mask = "4[.]11[.]0-(1|2|3|4|5|6|7|8|9|10|11|12|13|14)-.*" -[[supported_kernels]] +[[targets]] distro = { id = "Ubuntu", release = "16.04" } # equivalent for "4[.]13[.]0-(1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21)-.*" -[supported_kernels.kernel] +[targets.kernel] version = [ 4 ] major = [ 13 ] minor = [ 0 ] diff --git a/examples/kernel-module/.out-of-tree.toml b/examples/kernel-module/.out-of-tree.toml index 6e0c412..2cd2201 100644 --- a/examples/kernel-module/.out-of-tree.toml +++ b/examples/kernel-module/.out-of-tree.toml @@ -3,24 +3,24 @@ name = "out-of-tree module example" type = "module" -[[supported_kernels]] +[[targets]] # Can be Ubuntu/CentOS/Debian/etc. distro = { id = "Ubuntu", release = "16.04" } # regex for `uname -r` # See also: regex-golang.appspot.com release_mask = "4[.]4[.]0-70-.*" -# [[supported_kernels]] may be defined unlimited number of times -[[supported_kernels]] +# [[targets]] may be defined unlimited number of times +[[targets]] distro = { id = "Ubuntu", release = "18.04" } # Also you can use only one kernel release_mask = "4[.]15[.]0-(24|29)-generic" -[[supported_kernels]] +[[targets]] distro = { id = "Ubuntu", release = "18.04" } # Also you can use only one kernel release_mask = "4[.]15[.]0-23-generic" -[[supported_kernels]] +[[targets]] distro = { id = "CentOS", release = "7" } release_mask = "3[.]10[.]0-862.el7.x86_64" diff --git a/examples/preload/.out-of-tree.toml b/examples/preload/.out-of-tree.toml index 3145a0e..98cf350 100644 --- a/examples/preload/.out-of-tree.toml +++ b/examples/preload/.out-of-tree.toml @@ -1,7 +1,7 @@ name = "out-of-tree preload" type = "module" -[[supported_kernels]] +[[targets]] distro = { id = "Ubuntu", release = "18.04" } release_mask = ".*" diff --git a/examples/script/.out-of-tree.toml b/examples/script/.out-of-tree.toml index 4207cce..32147e5 100644 --- a/examples/script/.out-of-tree.toml +++ b/examples/script/.out-of-tree.toml @@ -5,6 +5,6 @@ type = "script" script = "script.sh" -[[supported_kernels]] +[[targets]] distro = { id = "Ubuntu", release = "22.04" } release_mask = ".*" diff --git a/gen.go b/gen.go index 1d34b8a..2d7ec9c 100644 --- a/gen.go +++ b/gen.go @@ -32,11 +32,11 @@ func genConfig(at config.ArtifactType) (err error) { Name: "Put name here", Type: at, } - a.SupportedKernels = append(a.SupportedKernels, config.KernelMask{ + a.Targets = append(a.Targets, config.KernelMask{ Distro: distro.Distro{ID: distro.Ubuntu, Release: "18.04"}, ReleaseMask: ".*", }) - a.SupportedKernels = append(a.SupportedKernels, config.KernelMask{ + a.Targets = append(a.Targets, config.KernelMask{ Distro: distro.Distro{ID: distro.Debian, Release: "8"}, ReleaseMask: ".*", }) diff --git a/kernel.go b/kernel.go index e2ce870..09f4321 100644 --- a/kernel.go +++ b/kernel.go @@ -107,7 +107,7 @@ func (cmd KernelAutogenCmd) Run(kernelCmd *KernelCmd, g *Globals) (err error) { shutdown := false kernel.SetSigintHandler(&shutdown) - for _, sk := range ka.SupportedKernels { + for _, sk := range ka.Targets { if sk.Distro.Release == "" { err = errors.New("Please set distro_release") return diff --git a/pew.go b/pew.go index c3d1613..46be897 100644 --- a/pew.go +++ b/pew.go @@ -101,11 +101,11 @@ func (cmd *PewCmd) Run(g *Globals) (err error) { return } - ka.SupportedKernels = []config.KernelMask{km} + ka.Targets = []config.KernelMask{km} } if cmd.Guess { - ka.SupportedKernels, err = genAllKernels() + ka.Targets, err = genAllKernels() if err != nil { return } diff --git a/preload.go b/preload.go index e8b35d8..4c60f75 100644 --- a/preload.go +++ b/preload.go @@ -105,7 +105,7 @@ func buildPreload(workPath, tmp string, ki config.KernelInfo, Distro: ki.Distro, ReleaseMask: ki.KernelRelease, } - ka.SupportedKernels = []config.KernelMask{km} + ka.Targets = []config.KernelMask{km} if ka.Docker.Timeout.Duration != 0 { dockerTimeout = ka.Docker.Timeout.Duration