Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package k0sctl for openSUSE:Factory checked in at 2026-07-29 18:59:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/k0sctl (Old) and /work/SRC/openSUSE:Factory/.k0sctl.new.2004 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "k0sctl" Wed Jul 29 18:59:06 2026 rev:26 rq:1368289 version:0.32.2 Changes: -------- --- /work/SRC/openSUSE:Factory/k0sctl/k0sctl.changes 2026-07-07 21:03:29.370860160 +0200 +++ /work/SRC/openSUSE:Factory/.k0sctl.new.2004/k0sctl.changes 2026-07-29 19:00:11.675601331 +0200 @@ -1,0 +2,19 @@ +Wed Jul 29 05:07:21 UTC 2026 - Johannes Kastl <[email protected]> + +- Update to version 0.32.2: + * build(deps): bump github.com/k0sproject/rig/v2 from 2.1.0 to + 2.1.1 (#1127) + * build(deps): bump golang.org/x/text from 0.38.0 to 0.40.0 + (#1113) + * build(deps): bump github.com/mattn/go-isatty from 0.0.22 to + 0.0.24 (#1125) + * build(deps): bump k8s.io/client-go from 0.36.2 to 0.36.3 + (#1123) + * build(deps): bump actions/setup-python from 6 to 7 (#1119) + * build(deps): bump actions/setup-go from 6 to 7 (#1115) + * Fix corrupted Windows k0s install command (Flags + double-unquote, --kubelet-extra-args double-quote) (#1120) + * Remove long-removed podSecurityPolicy from k0sctl's init + default config (#1126) + +------------------------------------------------------------------- Old: ---- k0sctl-0.32.1.obscpio New: ---- k0sctl-0.32.2.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ k0sctl.spec ++++++ --- /var/tmp/diff_new_pack.4fWhP3/_old 2026-07-29 19:00:13.739672505 +0200 +++ /var/tmp/diff_new_pack.4fWhP3/_new 2026-07-29 19:00:13.743672643 +0200 @@ -18,7 +18,7 @@ Name: k0sctl -Version: 0.32.1 +Version: 0.32.2 Release: 0 Summary: A bootstrapping and management tool for k0s clusters License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.4fWhP3/_old 2026-07-29 19:00:13.843676092 +0200 +++ /var/tmp/diff_new_pack.4fWhP3/_new 2026-07-29 19:00:13.863676782 +0200 @@ -2,7 +2,7 @@ <service name="obs_scm" mode="manual"> <param name="url">https://github.com/k0sproject/k0sctl.git</param> <param name="scm">git</param> - <param name="revision">refs/tags/v0.32.1</param> + <param name="revision">refs/tags/v0.32.2</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="changesgenerate">enable</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.4fWhP3/_old 2026-07-29 19:00:13.923678851 +0200 +++ /var/tmp/diff_new_pack.4fWhP3/_new 2026-07-29 19:00:13.935679265 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/k0sproject/k0sctl.git</param> - <param name="changesrevision">db3dfb711f8b95e6f3bf4297db60dd5fbd337f85</param></service></servicedata> + <param name="changesrevision">f4005b6b9b22f72ba700b5ee17e9852e5d691193</param></service></servicedata> (No newline at EOF) ++++++ k0sctl-0.32.1.obscpio -> k0sctl-0.32.2.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.32.1/.github/workflows/codeql-analysis.yml new/k0sctl-0.32.2/.github/workflows/codeql-analysis.yml --- old/k0sctl-0.32.1/.github/workflows/codeql-analysis.yml 2026-07-06 13:40:55.000000000 +0200 +++ new/k0sctl-0.32.2/.github/workflows/codeql-analysis.yml 2026-07-29 01:11:12.000000000 +0200 @@ -43,7 +43,7 @@ # Added as suggested in https://github.com/github/codeql-action/issues/1842 to bring in a newer go than exists # preinstalled on the runners - name: Set up Go - uses: actions/setup-go@v6 + uses: actions/setup-go@v7 with: go-version-file: go.mod check-latest: true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.32.1/.github/workflows/dco.yaml new/k0sctl-0.32.2/.github/workflows/dco.yaml --- old/k0sctl-0.32.1/.github/workflows/dco.yaml 2026-07-06 13:40:55.000000000 +0200 +++ new/k0sctl-0.32.2/.github/workflows/dco.yaml 2026-07-29 01:11:12.000000000 +0200 @@ -21,7 +21,7 @@ uses: actions/checkout@v7 - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@v6 + uses: actions/setup-python@v7 with: python-version: ${{ env.PYTHON_VERSION }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.32.1/.github/workflows/go.yml new/k0sctl-0.32.2/.github/workflows/go.yml --- old/k0sctl-0.32.1/.github/workflows/go.yml 2026-07-06 13:40:55.000000000 +0200 +++ new/k0sctl-0.32.2/.github/workflows/go.yml 2026-07-29 01:11:12.000000000 +0200 @@ -19,7 +19,7 @@ - uses: actions/checkout@v7 - name: Set up Go - uses: actions/setup-go@v6 + uses: actions/setup-go@v7 with: go-version-file: go.mod check-latest: true @@ -33,7 +33,7 @@ - uses: actions/checkout@v7 - name: Set up Go - uses: actions/setup-go@v6 + uses: actions/setup-go@v7 with: go-version-file: go.mod check-latest: true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.32.1/.github/workflows/golangci-lint.yml new/k0sctl-0.32.2/.github/workflows/golangci-lint.yml --- old/k0sctl-0.32.1/.github/workflows/golangci-lint.yml 2026-07-06 13:40:55.000000000 +0200 +++ new/k0sctl-0.32.2/.github/workflows/golangci-lint.yml 2026-07-29 01:11:12.000000000 +0200 @@ -13,7 +13,7 @@ uses: actions/checkout@v7 - name: Set up Go - uses: actions/setup-go@v6 + uses: actions/setup-go@v7 with: go-version-file: go.mod check-latest: true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.32.1/.github/workflows/gomod-lint.yml new/k0sctl-0.32.2/.github/workflows/gomod-lint.yml --- old/k0sctl-0.32.1/.github/workflows/gomod-lint.yml 2026-07-06 13:40:55.000000000 +0200 +++ new/k0sctl-0.32.2/.github/workflows/gomod-lint.yml 2026-07-29 01:11:12.000000000 +0200 @@ -14,7 +14,7 @@ uses: actions/checkout@v7 - name: Set up Go - uses: actions/setup-go@v6 + uses: actions/setup-go@v7 with: go-version-file: go.mod check-latest: true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.32.1/.github/workflows/release.yml new/k0sctl-0.32.2/.github/workflows/release.yml --- old/k0sctl-0.32.1/.github/workflows/release.yml 2026-07-06 13:40:55.000000000 +0200 +++ new/k0sctl-0.32.2/.github/workflows/release.yml 2026-07-29 01:11:12.000000000 +0200 @@ -37,7 +37,7 @@ driver: docker-container - name: Set up Go - uses: actions/setup-go@v6 + uses: actions/setup-go@v7 with: go-version-file: go.mod check-latest: true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.32.1/.github/workflows/smoke.yml new/k0sctl-0.32.2/.github/workflows/smoke.yml --- old/k0sctl-0.32.1/.github/workflows/smoke.yml 2026-07-06 13:40:55.000000000 +0200 +++ new/k0sctl-0.32.2/.github/workflows/smoke.yml 2026-07-29 01:11:12.000000000 +0200 @@ -19,7 +19,7 @@ - uses: actions/checkout@v7 - name: Set up Go - uses: actions/setup-go@v6 + uses: actions/setup-go@v7 with: go-version-file: go.mod check-latest: true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.32.1/.github/workflows/update-latest-release.yml new/k0sctl-0.32.2/.github/workflows/update-latest-release.yml --- old/k0sctl-0.32.1/.github/workflows/update-latest-release.yml 2026-07-06 13:40:55.000000000 +0200 +++ new/k0sctl-0.32.2/.github/workflows/update-latest-release.yml 2026-07-29 01:11:12.000000000 +0200 @@ -26,7 +26,7 @@ fetch-depth: 0 - name: Set up Go - uses: actions/setup-go@v6 + uses: actions/setup-go@v7 with: go-version-file: go.mod check-latest: true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.32.1/cmd/init.go new/k0sctl-0.32.2/cmd/init.go --- old/k0sctl-0.32.1/cmd/init.go 2026-07-06 13:40:55.000000000 +0200 +++ new/k0sctl-0.32.2/cmd/init.go 2026-07-29 01:11:12.000000000 +0200 @@ -40,8 +40,6 @@ kubeProxy: disabled: false mode: iptables - podSecurityPolicy: - defaultPolicy: 00-k0s-privileged telemetry: enabled: true installConfig: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.32.1/go.mod new/k0sctl-0.32.2/go.mod --- old/k0sctl-0.32.1/go.mod 2026-07-06 13:40:55.000000000 +0200 +++ new/k0sctl-0.32.2/go.mod 2026-07-29 01:11:12.000000000 +0200 @@ -17,28 +17,28 @@ github.com/logrusorgru/aurora v2.0.3+incompatible github.com/masterzen/simplexml v0.0.0-20190410153822-31eea3082786 // indirect github.com/masterzen/winrm v0.0.0-20260407182533-5570be7f80cf // indirect - github.com/mattn/go-isatty v0.0.22 + github.com/mattn/go-isatty v0.0.24 github.com/shiena/ansicolor v0.0.0-20230509054315-a9deabde6e02 github.com/sirupsen/logrus v1.9.4 github.com/stretchr/testify v1.11.1 github.com/urfave/cli/v2 v2.27.7 - golang.org/x/crypto v0.53.0 // indirect + golang.org/x/crypto v0.54.0 // indirect golang.org/x/net v0.56.0 // indirect - golang.org/x/sys v0.46.0 // indirect - golang.org/x/term v0.44.0 // indirect - golang.org/x/text v0.38.0 + golang.org/x/sys v0.47.0 // indirect + golang.org/x/term v0.45.0 // indirect + golang.org/x/text v0.40.0 gopkg.in/yaml.v2 v2.4.0 ) require ( github.com/carlmjohnson/versioninfo v0.22.5 github.com/jellydator/validation v1.2.0 - github.com/k0sproject/rig/v2 v2.1.0 + github.com/k0sproject/rig/v2 v2.1.1 github.com/k0sproject/version v0.8.0 github.com/samber/slog-logrus/v2 v2.5.4 github.com/sergi/go-diff v1.4.0 - k8s.io/apimachinery v0.36.2 - k8s.io/client-go v0.36.2 + k8s.io/apimachinery v0.36.3 + k8s.io/client-go v0.36.3 ) require ( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.32.1/go.sum new/k0sctl-0.32.2/go.sum --- old/k0sctl-0.32.1/go.sum 2026-07-06 13:40:55.000000000 +0200 +++ new/k0sctl-0.32.2/go.sum 2026-07-29 01:11:12.000000000 +0200 @@ -108,8 +108,8 @@ github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/k0sproject/dig v0.4.0 h1:yBxFUUxNXAMGBg6b7c6ypxdx/o3RmhoI5v5ABOw5tn0= github.com/k0sproject/dig v0.4.0/go.mod h1:rlZ7N7ZEcB4Fi96TPXkZ4dqyAiDWOGLapyL9YpZ7Qz4= -github.com/k0sproject/rig/v2 v2.1.0 h1:Xt7FtMlyyknnpAVN8HKP4JZmZsDWZz39pw+FrwEcpl4= -github.com/k0sproject/rig/v2 v2.1.0/go.mod h1:4bp1yGRyoANCEe9aFAAJzttFvTRWMPnbleYBQUaY38c= +github.com/k0sproject/rig/v2 v2.1.1 h1:ioBM6KAUk5m1BXThwvKK04JMjW3yP8tYK52vJedcEWo= +github.com/k0sproject/rig/v2 v2.1.1/go.mod h1:MT/AK5aXluuTE+soUNQ2yLlINWjrMLzY+FKltqpVJcc= github.com/k0sproject/version v0.8.0 h1:Yh1SFDeBqQ7etrGwffY8bWKdbAUjeBOhiZ6oQuuz4sM= github.com/k0sproject/version v0.8.0/go.mod h1:iNV3O8blndsQhxZ8zACfpQhrLDlrTvDlCzx+vgCFtSI= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= @@ -130,8 +130,8 @@ github.com/mattn/go-colorable v0.1.15 h1:+u9SLTRGnXv73cEsnsmoZBom+dMU88B2M0aDcWy0/jY= github.com/mattn/go-colorable v0.1.15/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.22 h1:j8l17JJ9i6VGPUFUYoTUKPSgKe/83EYU2zBC7YNKMw4= -github.com/mattn/go-isatty v0.0.22/go.mod h1:ZXfXG4SQHsB/w3ZeOYbR0PrPwLy+n6xiMrJlRFqopa4= +github.com/mattn/go-isatty v0.0.24 h1:tGZZoVgT/KiqK1c8ocVLeDS8BSWMRd47J3Lbz7vsReI= +github.com/mattn/go-isatty v0.0.24/go.mod h1:nMCL3Zebbrt45jsMDgnfIwz6ydEQApk5oEI3HqDio6A= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQE9x6ikvDFZS2mDVS3drnohI= github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= @@ -192,8 +192,8 @@ golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= -golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto= -golang.org/x/crypto v0.53.0/go.mod h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio= +golang.org/x/crypto v0.54.0 h1:YLIA59K4fiNzHzjnZt2tUJQjQtUWfWbeHBqKtk3eScw= +golang.org/x/crypto v0.54.0/go.mod h1:KWL8ny2AZdGR2cWmzeHrp2azQPGogOv+HeQaVEXC2dk= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -214,20 +214,20 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw= -golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= +golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.44.0 h1:0rLvDRCtNj0gZkyIXhCyOb2OAzEhLVqc4B+hrsBhrmc= -golang.org/x/term v0.44.0/go.mod h1:7ze4MdzUzLXpSAoFP1H0bOI9aXDqveSvatT5vKcFh2Y= +golang.org/x/term v0.45.0 h1:NwWyBmoJCbfTHpxrWoZ9C6/VxOf7ic219I8xZZFdrf0= +golang.org/x/term v0.45.0/go.mod h1:9aqxs0blBcrm/n0L9QW0aRVD+ktan8ssZromtqJC43w= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.38.0 h1:sXmwo9DwP3OK9EZ7PqAdaooSGozfl/3a6/xJcbzPRhE= -golang.org/x/text v0.38.0/go.mod h1:YXZt3QhHUKYT53r2lLKFIVi6Ao1jdzrTR/KQ09qyxF4= +golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs= +golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY= golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U= golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -249,12 +249,12 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.36.2 h1:TF6YDLIzKfccK7cq9YpTcGX8TJmEkHVRv78DM51fRYY= -k8s.io/api v0.36.2/go.mod h1:F4LbMO4brjZYh7yFkXWhynSvtB7YauxV4c+HHkNRGNg= -k8s.io/apimachinery v0.36.2 h1:0PE/W/WNy1UX61NLbXY5TMbJ6UwLL6E6lAPkYrKFxbQ= -k8s.io/apimachinery v0.36.2/go.mod h1:fvf/HOLXq9RId0rnDIbN1OEBvHXdQbLMM8nu0LcBUf4= -k8s.io/client-go v0.36.2 h1:bfgxmFKc9CgqsgX4xKLAAdmTQlWee7Ob/HlDOrJ5TBI= -k8s.io/client-go v0.36.2/go.mod h1:1vgO4OAlfPnoLcb+Rze2GF5rAr14w8qjrYMoyXJzQj0= +k8s.io/api v0.36.3 h1:NxB+05W2UGqXWFXcLO0RB5cnqnUPP5v5sVlaOH0Iz4w= +k8s.io/api v0.36.3/go.mod h1:JzLQKqRHC5+I8RVj/lS3lCg0mg6nWI9Fo/Sk3ElxHzg= +k8s.io/apimachinery v0.36.3 h1:PkzMRBRG8joFD8EhCuQAtNPvJlxb82FwplP26HIzvAM= +k8s.io/apimachinery v0.36.3/go.mod h1:cTSjBWgPe/6CQyBKzY/hDIRWCQQQeK0mfLbml0UYFHE= +k8s.io/client-go v0.36.3 h1:M4JdVzXxYcZk4fGpfDdYnxSwhLKWCFoQsHW6t+z8Hfg= +k8s.io/client-go v0.36.3/go.mod h1:gcPwr0c87vjjG6HB6pWEqOeuYVoXSsREjzux2j6GF30= k8s.io/klog/v2 v2.140.0 h1:Tf+J3AH7xnUzZyVVXhTgGhEKnFqye14aadWv7bzXdzc= k8s.io/klog/v2 v2.140.0/go.mod h1:o+/RWfJ6PwpnFn7OyAG3QnO47BFsymfEfrz6XyYSSp0= k8s.io/kube-openapi v0.0.0-20260624041617-8f3fa4921821 h1:m2wZhD5+vJZyCVkTvUHIfaiXc/mdt3Pxyx3vUnGsKzU= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.32.1/pkg/apis/k0sctl.k0sproject.io/v1beta1/cluster/flags.go new/k0sctl-0.32.2/pkg/apis/k0sctl.k0sproject.io/v1beta1/cluster/flags.go --- old/k0sctl-0.32.1/pkg/apis/k0sctl.k0sproject.io/v1beta1/cluster/flags.go 2026-07-06 13:40:55.000000000 +0200 +++ new/k0sctl-0.32.2/pkg/apis/k0sctl.k0sproject.io/v1beta1/cluster/flags.go 2026-07-29 01:11:12.000000000 +0200 @@ -11,6 +11,18 @@ // Flags is a slice of strings with added functions to ease manipulating lists of command-line flags type Flags []string +// isQuoted reports whether s is wrapped in a matching pair of single or double +// quotes. Only such values are safe to pass to shellescape.Unquote; a bare +// value must be left untouched so that literal backslashes (Windows paths) are +// not consumed as escape sequences. +func isQuoted(s string) bool { + if len(s) < 2 { + return false + } + c := s[0] + return (c == '\'' || c == '"') && s[len(s)-1] == c +} + // Add adds a flag regardless if it exists already or not func (f *Flags) Add(s string) { if ns, err := shellescape.Unquote(s); err == nil { @@ -35,7 +47,10 @@ if f.Include(s) { return } - f.Add(s) + // s has already been unquoted above; append it directly rather than going + // through Add, which would unquote a second time and mangle values that + // contain backslashes (e.g. Windows paths like C:\var\lib\k0s). + *f = append(*f, s) } // AddOrReplace replaces a flag with the same prefix or adds a new one if one does not exist @@ -48,7 +63,10 @@ (*f)[idx] = s return } - f.Add(s) + // s has already been unquoted above; append it directly rather than going + // through Add, which would unquote a second time and mangle values that + // contain backslashes (e.g. Windows paths like C:\var\lib\k0s). + *f = append(*f, s) } // Include returns true if a flag with a matching prefix can be found @@ -176,8 +194,14 @@ fn(flag, "") } else { key, value := flag[:sepidx], flag[sepidx+1:] - if unq, err := shellescape.Unquote(value); err == nil { - value = unq + // Only unquote a value that is actually wrapped in matching quotes. + // A bare value (e.g. a Windows path like C:\var\lib\k0s) must be + // left intact, since shellescape.Unquote would consume its + // backslashes. + if isQuoted(value) { + if unq, err := shellescape.Unquote(value); err == nil { + value = unq + } } fn(key, value) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.32.1/pkg/apis/k0sctl.k0sproject.io/v1beta1/cluster/flags_quoting_test.go new/k0sctl-0.32.2/pkg/apis/k0sctl.k0sproject.io/v1beta1/cluster/flags_quoting_test.go --- old/k0sctl-0.32.1/pkg/apis/k0sctl.k0sproject.io/v1beta1/cluster/flags_quoting_test.go 1970-01-01 01:00:00.000000000 +0100 +++ new/k0sctl-0.32.2/pkg/apis/k0sctl.k0sproject.io/v1beta1/cluster/flags_quoting_test.go 2026-07-29 01:11:12.000000000 +0200 @@ -0,0 +1,125 @@ +package cluster + +import ( + "testing" + + "github.com/k0sproject/rig/v2/powershell" + "github.com/stretchr/testify/require" +) + +// posixQuoter (declared in flags_test.go) mirrors the ShellQuote of a POSIX +// remotefs: simple tokens are left bare, only values that need it are quoted. + +// winQuoter mirrors remotefs.WinFS.ShellQuote, which is powershell.SingleQuote +// and therefore *always* wraps its argument in single quotes. +type winQuoter struct{} + +func (winQuoter) ShellQuote(s string) string { return powershell.SingleQuote(s) } + +// buildInstallFlags reproduces the flag construction that Host.K0sInstallFlags +// performs for a worker (data-dir/token-file/kubelet-root-dir via the host +// quoter, plus a --kubelet-extra-args built from a nested Flags), and returns +// the final command tail as K0sInstallCommand would render it via Join. +func buildInstallFlags(q quoter, dataDir, tokenFile, kubeletRootDir string) string { + var flags Flags + flags.AddOrReplace("--data-dir=" + quote(q, dataDir)) + flags.AddUnlessExist("--token-file=" + quote(q, tokenFile)) + flags.AddOrReplace("--kubelet-root-dir=" + quote(q, kubeletRootDir)) + + var extra Flags + extra.AddOrReplace("--cluster-dns=10.96.0.10") + extra.AddOrReplace("--hostname-override=EC2AMAZ-XXXX") + // K0sInstallFlags builds --kubelet-extra-args from extra.Join(q); the outer + // quote that used to wrap this has been removed (see issue #1114). + flags.AddOrReplace("--kubelet-extra-args=" + extra.Join(q)) + + return flags.Join(q) +} + +// TestK0sInstallFlagsQuoting is the table form of the standalone repro from +// issue #1114. It runs against both a POSIX quoter and a Windows SingleQuote +// quoter so the Windows-specific double-unquote (backslash paths) and +// double-quote (--kubelet-extra-args) regressions are guarded. +func TestK0sInstallFlagsQuoting(t *testing.T) { + tests := []struct { + name string + quoter quoter + dataDir string + tokenFile string + kubeletRootDir string + expected string + }{ + { + name: "posix", + quoter: posixQuoter{}, + dataDir: "/var/lib/k0s", + tokenFile: "/etc/k0s/k0stoken", + kubeletRootDir: "/var/lib/k0s/kubelet", + expected: `--data-dir=/var/lib/k0s --token-file=/etc/k0s/k0stoken --kubelet-root-dir=/var/lib/k0s/kubelet --kubelet-extra-args='--cluster-dns=10.96.0.10 --hostname-override=EC2AMAZ-XXXX'`, + }, + { + name: "windows", + quoter: winQuoter{}, + dataDir: powershell.ToWindowsPath("C:/var/lib/k0s"), + tokenFile: powershell.ToWindowsPath("C:/etc/k0s/k0stoken"), + kubeletRootDir: powershell.ToWindowsPath("C:/var/lib/k0s/kubelet"), + expected: `--data-dir='C:\var\lib\k0s' --token-file='C:\etc\k0s\k0stoken' --kubelet-root-dir='C:\var\lib\k0s\kubelet' --kubelet-extra-args='--cluster-dns=10.96.0.10 --hostname-override=EC2AMAZ-XXXX'`, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := buildInstallFlags(tt.quoter, tt.dataDir, tt.tokenFile, tt.kubeletRootDir) + require.Equal(t, tt.expected, got) + }) + } +} + +// TestFlagsUnquoteOnce guards the primitive: a value quoted once by the host +// quoter must be stored unquoted exactly once, with any literal backslashes +// intact. Before the fix, AddOrReplace/AddUnlessExist unquoted a second time +// via Add, and Each unquoted bare values, so Windows backslash paths were +// silently corrupted (C:\var\lib\k0s -> C:varlibk0s). +func TestFlagsUnquoteOnce(t *testing.T) { + quoters := []struct { + name string + q quoter + }{ + {"posix", posixQuoter{}}, + {"windows", winQuoter{}}, + } + + for _, qc := range quoters { + t.Run(qc.name, func(t *testing.T) { + const winPath = `C:\var\lib\k0s` + + t.Run("AddOrReplace preserves backslashes", func(t *testing.T) { + var f Flags + f.AddOrReplace("--data-dir=" + quote(qc.q, winPath)) + require.Equal(t, []string{`--data-dir=` + winPath}, []string(f)) + }) + + t.Run("AddUnlessExist preserves backslashes", func(t *testing.T) { + var f Flags + f.AddUnlessExist("--data-dir=" + quote(qc.q, winPath)) + require.Equal(t, []string{`--data-dir=` + winPath}, []string(f)) + }) + + t.Run("Each leaves a bare value untouched", func(t *testing.T) { + f := Flags{`--data-dir=` + winPath} + f.Each(func(k, v string) { + require.Equal(t, "--data-dir", k) + require.Equal(t, winPath, v) + }) + }) + + t.Run("Each still unquotes a genuinely quoted value", func(t *testing.T) { + f := Flags{`--foo='bar baz'`} + f.Each(func(k, v string) { + require.Equal(t, "--foo", k) + require.Equal(t, "bar baz", v) + }) + }) + }) + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/k0sctl-0.32.1/pkg/apis/k0sctl.k0sproject.io/v1beta1/cluster/host.go new/k0sctl-0.32.2/pkg/apis/k0sctl.k0sproject.io/v1beta1/cluster/host.go --- old/k0sctl-0.32.1/pkg/apis/k0sctl.k0sproject.io/v1beta1/cluster/host.go 2026-07-06 13:40:55.000000000 +0200 +++ new/k0sctl-0.32.2/pkg/apis/k0sctl.k0sproject.io/v1beta1/cluster/host.go 2026-07-29 01:11:12.000000000 +0200 @@ -544,7 +544,12 @@ extra.AddOrReplace("--hostname-override=" + h.HostnameOverride) } if extra != nil { - flags.AddOrReplace(fmt.Sprintf("--kubelet-extra-args=%s", quote(h.FS(), extra.Join(h.FS())))) + // extra.Join already quotes each value with the host quoter; the + // final flags.Join in K0sInstallCommand quotes the whole + // --kubelet-extra-args value once more. Quoting here as well would + // double-quote it (on Windows SingleQuote wraps every value), + // producing a mangled, backtick-escaped result. + flags.AddOrReplace(fmt.Sprintf("--kubelet-extra-args=%s", extra.Join(h.FS()))) } } ++++++ k0sctl.obsinfo ++++++ --- /var/tmp/diff_new_pack.4fWhP3/_old 2026-07-29 19:00:14.447696920 +0200 +++ /var/tmp/diff_new_pack.4fWhP3/_new 2026-07-29 19:00:14.451697058 +0200 @@ -1,5 +1,5 @@ name: k0sctl -version: 0.32.1 -mtime: 1783338055 -commit: db3dfb711f8b95e6f3bf4297db60dd5fbd337f85 +version: 0.32.2 +mtime: 1785280272 +commit: f4005b6b9b22f72ba700b5ee17e9852e5d691193 ++++++ vendor.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/k0sproject/rig/v2/initsystem/winscm.go new/vendor/github.com/k0sproject/rig/v2/initsystem/winscm.go --- old/vendor/github.com/k0sproject/rig/v2/initsystem/winscm.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/github.com/k0sproject/rig/v2/initsystem/winscm.go 2026-07-29 01:11:12.000000000 +0200 @@ -20,16 +20,28 @@ func (WinSCM) String() string { return "winscm" } // StartService starts a service. +// +// -WarningAction SilentlyContinue suppresses the benign "Waiting for service +// '…' to start..." progress warning that Start-Service emits when a service +// stays in StartPending for a moment (common on a cold first start). That +// warning goes to the warning stream, which lands on stderr under a subprocess, +// and rig treats any Windows stderr output as a failure. -ErrorAction Stop +// still turns a genuine start failure into a terminating (non-zero) error, so +// real failures are still detected. func (c WinSCM) StartService(ctx context.Context, h cmd.ContextRunner, s string) error { - if err := h.ExecContext(ctx, "$ErrorActionPreference='Stop'\nStart-Service "+ps.SingleQuote(s)+" -ErrorAction Stop", cmd.PS()); err != nil { + if err := h.ExecContext(ctx, "$ErrorActionPreference='Stop'\nStart-Service "+ps.SingleQuote(s)+" -ErrorAction Stop -WarningAction SilentlyContinue", cmd.PS()); err != nil { return fmt.Errorf("failed to start service %s: %w", s, err) } return nil } // StopService stops a service. +// +// -WarningAction SilentlyContinue suppresses the benign "Waiting for service +// '…' to stop..." progress warning (StopPending) for the same reason as +// StartService; -ErrorAction Stop still surfaces genuine failures. func (c WinSCM) StopService(ctx context.Context, h cmd.ContextRunner, s string) error { - if err := h.ExecContext(ctx, "$ErrorActionPreference='Stop'\nStop-Service "+ps.SingleQuote(s)+" -ErrorAction Stop", cmd.PS()); err != nil { + if err := h.ExecContext(ctx, "$ErrorActionPreference='Stop'\nStop-Service "+ps.SingleQuote(s)+" -ErrorAction Stop -WarningAction SilentlyContinue", cmd.PS()); err != nil { return fmt.Errorf("failed to stop service %s: %w", s, err) } return nil @@ -41,8 +53,12 @@ } // RestartService restarts a service. +// +// -WarningAction SilentlyContinue suppresses the benign "Waiting for service +// '…' to start/stop..." progress warnings for the same reason as StartService; +// -ErrorAction Stop still surfaces genuine failures. func (c WinSCM) RestartService(ctx context.Context, h cmd.ContextRunner, s string) error { - if err := h.ExecContext(ctx, "$ErrorActionPreference='Stop'\nRestart-Service "+ps.SingleQuote(s)+" -ErrorAction Stop", cmd.PS()); err != nil { + if err := h.ExecContext(ctx, "$ErrorActionPreference='Stop'\nRestart-Service "+ps.SingleQuote(s)+" -ErrorAction Stop -WarningAction SilentlyContinue", cmd.PS()); err != nil { return fmt.Errorf("failed to restart service %s: %w", s, err) } return nil diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/mattn/go-isatty/isatty_others.go new/vendor/github.com/mattn/go-isatty/isatty_others.go --- old/vendor/github.com/mattn/go-isatty/isatty_others.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/github.com/mattn/go-isatty/isatty_others.go 2026-07-29 01:11:12.000000000 +0200 @@ -1,5 +1,5 @@ -//go:build (appengine || js || nacl || tinygo || wasm || wasip1 || wasip2) && !windows -// +build appengine js nacl tinygo wasm wasip1 wasip2 +//go:build (appengine || js || nacl || tinygo || wasm || wasip1 || wasip2 || haiku) && !windows +// +build appengine js nacl tinygo wasm wasip1 wasip2 haiku // +build !windows package isatty diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/mattn/go-isatty/isatty_tcgets.go new/vendor/github.com/mattn/go-isatty/isatty_tcgets.go --- old/vendor/github.com/mattn/go-isatty/isatty_tcgets.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/github.com/mattn/go-isatty/isatty_tcgets.go 1970-01-01 01:00:00.000000000 +0100 @@ -1,20 +0,0 @@ -//go:build (linux || aix || zos) && !appengine && !tinygo -// +build linux aix zos -// +build !appengine -// +build !tinygo - -package isatty - -import "golang.org/x/sys/unix" - -// IsTerminal return true if the file descriptor is terminal. -func IsTerminal(fd uintptr) bool { - _, err := unix.IoctlGetTermios(int(fd), unix.TCGETS) - return err == nil -} - -// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2 -// terminal. This is also always false on this environment. -func IsCygwinTerminal(fd uintptr) bool { - return false -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/mattn/go-isatty/isatty_tiocgwinsz.go new/vendor/github.com/mattn/go-isatty/isatty_tiocgwinsz.go --- old/vendor/github.com/mattn/go-isatty/isatty_tiocgwinsz.go 1970-01-01 01:00:00.000000000 +0100 +++ new/vendor/github.com/mattn/go-isatty/isatty_tiocgwinsz.go 2026-07-29 01:11:12.000000000 +0200 @@ -0,0 +1,24 @@ +//go:build (linux || aix || zos) && !appengine && !tinygo +// +build linux aix zos +// +build !appengine +// +build !tinygo + +package isatty + +import "golang.org/x/sys/unix" + +// IsTerminal return true if the file descriptor is terminal. +// TIOCGWINSZ is used instead of TCGETS because TCGETS shares its ioctl +// number with SNDCTL_TMR_TIMEBASE of the OSS sound API, so it may succeed +// (and even change the device mode) on non-tty devices. musl's isatty does +// the same. +func IsTerminal(fd uintptr) bool { + _, err := unix.IoctlGetWinsize(int(fd), unix.TIOCGWINSZ) + return err == nil +} + +// IsCygwinTerminal return true if the file descriptor is a cygwin or msys2 +// terminal. This is also always false on this environment. +func IsCygwinTerminal(fd uintptr) bool { + return false +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/crypto/ssh/agent/forward.go new/vendor/golang.org/x/crypto/ssh/agent/forward.go --- old/vendor/golang.org/x/crypto/ssh/agent/forward.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/crypto/ssh/agent/forward.go 2026-07-29 01:11:12.000000000 +0200 @@ -41,6 +41,7 @@ continue } go ssh.DiscardRequests(reqs) + go io.Copy(io.Discard, channel.Stderr()) go func() { ServeAgent(keyring, channel) channel.Close() @@ -72,6 +73,7 @@ continue } go ssh.DiscardRequests(reqs) + go io.Copy(io.Discard, channel.Stderr()) go forwardUnixSocket(channel, addr) } }() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/crypto/ssh/agent/server.go new/vendor/golang.org/x/crypto/ssh/agent/server.go --- old/vendor/golang.org/x/crypto/ssh/agent/server.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/crypto/ssh/agent/server.go 2026-07-29 01:11:12.000000000 +0200 @@ -304,19 +304,60 @@ return addedKey, nil } +func checkDSAParams(param *dsa.Parameters) error { + // SSH specifies FIPS 186-2, which only provided a single size + // (1024 bits) DSA key. FIPS 186-3 allows for larger key + // sizes, which would confuse SSH. + if l := param.P.BitLen(); l != 1024 { + return fmt.Errorf("ssh: unsupported DSA key size %d", l) + } + + // FIPS 186-2 specifies that Q must be exactly 160 bits. We must enforce + // this to prevent DoS attacks where an attacker sends a huge Q which makes + // verification slow. + if l := param.Q.BitLen(); l != 160 { + return fmt.Errorf("ssh: unsupported DSA sub-prime size %d", l) + } + + // The generator G is an element of the group, so it must be strictly less + // than the modulus P. + if param.G.Cmp(param.P) >= 0 { + return errors.New("ssh: DSA generator larger than modulus") + } + + // G must be positive. + if param.G.Sign() <= 0 { + return errors.New("ssh: DSA generator must be positive") + } + + return nil +} + func parseDSAKey(req []byte) (*AddedKey, error) { var k dsaKeyMsg if err := ssh.Unmarshal(req, &k); err != nil { return nil, err } + params := dsa.Parameters{ + P: k.P, + Q: k.Q, + G: k.G, + } + if err := checkDSAParams(¶ms); err != nil { + return nil, err + } + + // The public value Y must be a non-zero element of the group, i.e. strictly + // between 0 and P, to prevent a maliciously oversized Y from slowing + // signature operations. + if k.Y.Sign() <= 0 || k.Y.Cmp(k.P) >= 0 { + return nil, errors.New("agent: DSA public value Y out of range") + } + priv := &dsa.PrivateKey{ PublicKey: dsa.PublicKey{ - Parameters: dsa.Parameters{ - P: k.P, - Q: k.Q, - G: k.G, - }, - Y: k.Y, + Parameters: params, + Y: k.Y, }, X: k.X, } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/crypto/ssh/keys.go new/vendor/golang.org/x/crypto/ssh/keys.go --- old/vendor/golang.org/x/crypto/ssh/keys.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/crypto/ssh/keys.go 2026-07-29 01:11:12.000000000 +0200 @@ -182,14 +182,19 @@ } hosts := string(keyFields[0]) - // keyFields[1] contains the key type (e.g. “ssh-rsa”). - // However, that information is duplicated inside the - // base64-encoded key and so is ignored here. + // keyFields[1] contains the key type (e.g. "ssh-rsa"). This information + // is duplicated within the base64-encoded key blob. As OpenSSH's + // sshkey_read does, we verify that the declared key type matches the + // type embedded in the key blob. + wantType := string(keyFields[1]) key := bytes.Join(keyFields[2:], []byte(" ")) if pubKey, comment, err = parseAuthorizedKey(key); err != nil { return "", nil, nil, "", nil, err } + if pubKey.Type() != wantType { + return "", nil, nil, "", nil, fmt.Errorf("ssh: known hosts key type mismatch: human-readable type %q, encoded type %q", wantType, pubKey.Type()) + } return marker, strings.Split(hosts, ","), pubKey, comment, rest, nil } @@ -228,10 +233,17 @@ } if out, comment, err = parseAuthorizedKey(in[i:]); err == nil { - return out, comment, options, rest, nil - } else { - lastErr = err + // The first field contains the declared key type. As OpenSSH's + // sshkey_read does, we verify that it matches the type embedded in + // the key blob. Without this check, a single-token option (e.g. + // "restrict") appearing in the key type position could be silently + // discarded along with its intended effect. + if string(in[:i]) == out.Type() { + return out, comment, options, rest, nil + } + err = fmt.Errorf("ssh: authorized keys key type mismatch: human-readable type %q, encoded type %q", in[:i], out.Type()) } + lastErr = err // No key type recognised. Maybe there's an options field at // the beginning. @@ -271,11 +283,15 @@ } if out, comment, err = parseAuthorizedKey(in[i:]); err == nil { - options = candidateOptions - return out, comment, options, rest, nil - } else { - lastErr = err + // As above, the declared key type (here following the options + // field) must match the type embedded in the key blob. + if string(in[:i]) == out.Type() { + options = candidateOptions + return out, comment, options, rest, nil + } + err = fmt.Errorf("ssh: authorized keys key type mismatch: human-readable type %q, encoded type %q", in[:i], out.Type()) } + lastErr = err in = rest continue diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/crypto/ssh/messages.go new/vendor/golang.org/x/crypto/ssh/messages.go --- old/vendor/golang.org/x/crypto/ssh/messages.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/crypto/ssh/messages.go 2026-07-29 01:11:12.000000000 +0200 @@ -44,7 +44,16 @@ } func (d *disconnectMsg) Error() string { - return fmt.Sprintf("ssh: disconnect, reason %d: %s", d.Reason, d.Message) + return fmt.Sprintf("ssh: disconnect, reason %d: %q", d.Reason, sanitizeString(d.Message)) +} + +func sanitizeString(s string) string { + return strings.Map(func(r rune) rune { + if r == '\t' || (r >= ' ' && r < 0x7f) { + return r + } + return -1 + }, s) } // See RFC 4253, section 7.1. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/cpu/parse.go new/vendor/golang.org/x/sys/cpu/parse.go --- old/vendor/golang.org/x/sys/cpu/parse.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/cpu/parse.go 2026-07-29 01:11:12.000000000 +0200 @@ -6,38 +6,50 @@ import "strconv" -// parseRelease parses a dot-separated version number. It follows the semver -// syntax, but allows the minor and patch versions to be elided. +// parseRelease parses a dot-separated version number from the prefix +// of rel. It returns ok=true only if at least the major and minor +// components were successfully parsed; the patch component is +// best-effort. Trailing vendor or build suffixes such as +// "-generic", "+", "_hi3535", or "-rc1" are ignored. // // This is a copy of the Go runtime's parseRelease from -// https://golang.org/cl/209597. +// https://golang.org/cl/209597, updated in https://golang.org/cl/781800. func parseRelease(rel string) (major, minor, patch int, ok bool) { - // Strip anything after a dash or plus. - for i := range len(rel) { - if rel[i] == '-' || rel[i] == '+' { - rel = rel[:i] - break + // next consumes a run of decimal digits from the front of rel, + // returning the parsed value. If the digits are followed by a + // '.', it is consumed and more is set so the caller knows to + // parse another component; otherwise scanning terminates and + // the rest of rel is discarded. + next := func() (n int, more, ok bool) { + i := 0 + for i < len(rel) && rel[i] >= '0' && rel[i] <= '9' { + i++ } - } - - next := func() (int, bool) { - for i := range len(rel) { - if rel[i] == '.' { - ver, err := strconv.Atoi(rel[:i]) - rel = rel[i+1:] - return ver, err == nil - } + if i == 0 { + return 0, false, false + } + n, err := strconv.Atoi(rel[:i]) + if err != nil { + return 0, false, false + } + if i < len(rel) && rel[i] == '.' { + rel = rel[i+1:] + return n, true, true } - ver, err := strconv.Atoi(rel) rel = "" - return ver, err == nil + return n, false, true + } + + var more bool + if major, more, ok = next(); !ok || !more { + return 0, 0, 0, false } - if major, ok = next(); !ok || rel == "" { - return + if minor, more, ok = next(); !ok { + return 0, 0, 0, false } - if minor, ok = next(); !ok || rel == "" { - return + if !more { + return major, minor, 0, true } - patch, ok = next() - return + patch, _, _ = next() + return major, minor, patch, true } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/syscall_linux.go new/vendor/golang.org/x/sys/unix/syscall_linux.go --- old/vendor/golang.org/x/sys/unix/syscall_linux.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/syscall_linux.go 2026-07-29 01:11:12.000000000 +0200 @@ -1874,6 +1874,7 @@ //sys Dup3(oldfd int, newfd int, flags int) (err error) //sysnb EpollCreate1(flag int) (fd int, err error) //sysnb EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT //sys Eventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD2 //sys Exit(code int) = SYS_EXIT_GROUP //sys Fallocate(fd int, mode uint32, off int64, len int64) (err error) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/syscall_linux_386.go new/vendor/golang.org/x/sys/unix/syscall_linux_386.go --- old/vendor/golang.org/x/sys/unix/syscall_linux_386.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/syscall_linux_386.go 2026-07-29 01:11:12.000000000 +0200 @@ -20,7 +20,6 @@ // 64-bit file system and 32-bit uid calls // (386 default is 32-bit file system and 16-bit uid). -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64_64 //sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 //sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go new/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go --- old/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go 2026-07-29 01:11:12.000000000 +0200 @@ -6,7 +6,6 @@ package unix -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 //sys Fchown(fd int, uid int, gid int) (err error) //sys Fstat(fd int, stat *Stat_t) (err error) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/syscall_linux_arm.go new/vendor/golang.org/x/sys/unix/syscall_linux_arm.go --- old/vendor/golang.org/x/sys/unix/syscall_linux_arm.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/syscall_linux_arm.go 2026-07-29 01:11:12.000000000 +0200 @@ -44,7 +44,6 @@ // 64-bit file system and 32-bit uid calls // (16-bit uid calls are not always supported in newer kernels) -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 //sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 //sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go new/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go --- old/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go 2026-07-29 01:11:12.000000000 +0200 @@ -8,7 +8,6 @@ import "unsafe" -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 //sys Fchown(fd int, uid int, gid int) (err error) //sys Fstat(fd int, stat *Stat_t) (err error) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go new/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go --- old/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go 2026-07-29 01:11:12.000000000 +0200 @@ -8,7 +8,6 @@ import "unsafe" -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 //sys Fchown(fd int, uid int, gid int) (err error) //sys Fstatfs(fd int, buf *Statfs_t) (err error) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go new/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go --- old/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go 2026-07-29 01:11:12.000000000 +0200 @@ -6,7 +6,6 @@ package unix -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 //sys Fchown(fd int, uid int, gid int) (err error) //sys Fstatfs(fd int, buf *Statfs_t) (err error) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go new/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go --- old/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go 2026-07-29 01:11:12.000000000 +0200 @@ -13,7 +13,6 @@ func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 //sys Fchown(fd int, uid int, gid int) (err error) //sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go new/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go --- old/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go 2026-07-29 01:11:12.000000000 +0200 @@ -11,7 +11,6 @@ "unsafe" ) -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fchown(fd int, uid int, gid int) (err error) //sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 //sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go new/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go --- old/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go 2026-07-29 01:11:12.000000000 +0200 @@ -6,7 +6,6 @@ package unix -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 //sys Fchown(fd int, uid int, gid int) (err error) //sys Fstat(fd int, stat *Stat_t) (err error) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go new/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go --- old/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go 2026-07-29 01:11:12.000000000 +0200 @@ -8,7 +8,6 @@ import "unsafe" -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 //sys Fchown(fd int, uid int, gid int) (err error) //sys Fstat(fd int, stat *Stat_t) (err error) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go new/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go --- old/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go 2026-07-29 01:11:12.000000000 +0200 @@ -10,7 +10,6 @@ "unsafe" ) -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 //sys Fchown(fd int, uid int, gid int) (err error) //sys Fstat(fd int, stat *Stat_t) (err error) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go new/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go --- old/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go 2026-07-29 01:11:12.000000000 +0200 @@ -6,7 +6,6 @@ package unix -//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 //sys Fchown(fd int, uid int, gid int) (err error) //sys Fstat(fd int, stat *Stat_t) (err error) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zerrors_linux.go new/vendor/golang.org/x/sys/unix/zerrors_linux.go --- old/vendor/golang.org/x/sys/unix/zerrors_linux.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/zerrors_linux.go 2026-07-29 01:11:12.000000000 +0200 @@ -1359,6 +1359,7 @@ FAN_UNLIMITED_MARKS = 0x20 FAN_UNLIMITED_QUEUE = 0x10 FD_CLOEXEC = 0x1 + FD_PIDFS_ROOT = -0x2712 FD_SETSIZE = 0x400 FF0 = 0x0 FIB_RULE_DEV_DETACHED = 0x8 @@ -1970,6 +1971,8 @@ MADV_DONTNEED = 0x4 MADV_DONTNEED_LOCKED = 0x18 MADV_FREE = 0x8 + MADV_GUARD_INSTALL = 0x66 + MADV_GUARD_REMOVE = 0x67 MADV_HUGEPAGE = 0xe MADV_HWPOISON = 0x64 MADV_KEEPONFORK = 0x13 @@ -2114,7 +2117,7 @@ MS_NOSEC = 0x10000000 MS_NOSUID = 0x2 MS_NOSYMFOLLOW = 0x100 - MS_NOUSER = -0x80000000 + MS_NOUSER = 0x80000000 MS_POSIXACL = 0x10000 MS_PRIVATE = 0x40000 MS_RDONLY = 0x1 @@ -3786,6 +3789,9 @@ TCPOPT_TIMESTAMP = 0x8 TCPOPT_TSTAMP_HDR = 0x101080a TCPOPT_WINDOW = 0x3 + TCP_AO_KEYF_EXCLUDE_OPT = 0x2 + TCP_AO_KEYF_IFINDEX = 0x1 + TCP_AO_MAXKEYLEN = 0x50 TCP_CC_INFO = 0x1a TCP_CM_INQ = 0x24 TCP_CONGESTION = 0xd diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_linux.go new/vendor/golang.org/x/sys/unix/zsyscall_linux.go --- old/vendor/golang.org/x/sys/unix/zsyscall_linux.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/zsyscall_linux.go 2026-07-29 01:11:12.000000000 +0200 @@ -700,6 +700,23 @@ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + func Eventfd(initval uint, flags int) (fd int, err error) { r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) fd = int(r0) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go new/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go --- old/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go 2026-07-29 01:11:12.000000000 +0200 @@ -45,23 +45,6 @@ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fadvise(fd int, offset int64, length int64, advice int) (err error) { _, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice)) if e1 != 0 { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go new/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go --- old/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go 2026-07-29 01:11:12.000000000 +0200 @@ -45,23 +45,6 @@ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fadvise(fd int, offset int64, length int64, advice int) (err error) { _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) if e1 != 0 { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go new/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go --- old/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go 2026-07-29 01:11:12.000000000 +0200 @@ -213,23 +213,6 @@ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fchown(fd int, uid int, gid int) (err error) { _, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid)) if e1 != 0 { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go new/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go --- old/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go 2026-07-29 01:11:12.000000000 +0200 @@ -45,23 +45,6 @@ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fadvise(fd int, offset int64, length int64, advice int) (err error) { _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) if e1 != 0 { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go new/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go --- old/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go 2026-07-29 01:11:12.000000000 +0200 @@ -45,23 +45,6 @@ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fadvise(fd int, offset int64, length int64, advice int) (err error) { _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) if e1 != 0 { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go new/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go --- old/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go 2026-07-29 01:11:12.000000000 +0200 @@ -45,23 +45,6 @@ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fadvise(fd int, offset int64, length int64, advice int) (err error) { _, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset>>32), uintptr(offset), uintptr(length>>32), uintptr(length), uintptr(advice), 0, 0) if e1 != 0 { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go new/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go --- old/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go 2026-07-29 01:11:12.000000000 +0200 @@ -45,23 +45,6 @@ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fadvise(fd int, offset int64, length int64, advice int) (err error) { _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) if e1 != 0 { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go new/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go --- old/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go 2026-07-29 01:11:12.000000000 +0200 @@ -45,23 +45,6 @@ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fadvise(fd int, offset int64, length int64, advice int) (err error) { _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) if e1 != 0 { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go new/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go --- old/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go 2026-07-29 01:11:12.000000000 +0200 @@ -45,23 +45,6 @@ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fadvise(fd int, offset int64, length int64, advice int) (err error) { _, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 0, 0) if e1 != 0 { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go new/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go --- old/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go 2026-07-29 01:11:12.000000000 +0200 @@ -45,23 +45,6 @@ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fchown(fd int, uid int, gid int) (err error) { _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) if e1 != 0 { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go new/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go --- old/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go 2026-07-29 01:11:12.000000000 +0200 @@ -45,23 +45,6 @@ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fadvise(fd int, offset int64, length int64, advice int) (err error) { _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) if e1 != 0 { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go new/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go --- old/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go 2026-07-29 01:11:12.000000000 +0200 @@ -45,23 +45,6 @@ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fadvise(fd int, offset int64, length int64, advice int) (err error) { _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) if e1 != 0 { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go new/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go --- old/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go 2026-07-29 01:11:12.000000000 +0200 @@ -45,23 +45,6 @@ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fadvise(fd int, offset int64, length int64, advice int) (err error) { _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) if e1 != 0 { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go new/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go --- old/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go 2026-07-29 01:11:12.000000000 +0200 @@ -45,23 +45,6 @@ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fadvise(fd int, offset int64, length int64, advice int) (err error) { _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) if e1 != 0 { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go new/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go --- old/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go 2026-07-29 01:11:12.000000000 +0200 @@ -45,23 +45,6 @@ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { - var _p0 unsafe.Pointer - if len(events) > 0 { - _p0 = unsafe.Pointer(&events[0]) - } else { - _p0 = unsafe.Pointer(&_zero) - } - r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) - n = int(r0) - if e1 != 0 { - err = errnoErr(e1) - } - return -} - -// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - func Fadvise(fd int, offset int64, length int64, advice int) (err error) { _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) if e1 != 0 { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/windows/security_windows.go new/vendor/golang.org/x/sys/windows/security_windows.go --- old/vendor/golang.org/x/sys/windows/security_windows.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/windows/security_windows.go 2026-07-29 01:11:12.000000000 +0200 @@ -1109,17 +1109,53 @@ ) // This type is the union inside of TRUSTEE and must be created using one of the TrusteeValueFrom* functions. +// +// Go pointers stored in a TrusteeValue must be pinned using [runtime.Pinner] +// for the lifetime of the TrusteeValue. type TrusteeValue uintptr +// TrusteeValueFromString is unsafe and should not be used. +// +// It returns a uintptr containing a reference to newly-allocated memory +// which will be freed by the garbage collector. +// There is no way for the caller to safely reference this memory. +// +// To create a [TrusteeValue] from a string, use: +// +// p, err := windows.UTF16PtrFromString(s) +// if err != nil { +// // handle error +// } +// +// // Pin the string for as long as it is used. +// var pinner runtime.Pinner +// pinner.Pin(p) +// defer pinner.Unpin() +// +// tv := TrusteeValue(unsafe.Pointer(p)) +// +// Deprecated: TrusteeValueFromString is unsafe and should not be used. func TrusteeValueFromString(str string) TrusteeValue { return TrusteeValue(unsafe.Pointer(StringToUTF16Ptr(str))) } + +// TrusteeValueFromSID returns a [TrusteeValue] referencing sid. +// +// The caller must pin sid using a [runtime.Pinner] for the lifetime of the TrusteeValue. func TrusteeValueFromSID(sid *SID) TrusteeValue { return TrusteeValue(unsafe.Pointer(sid)) } + +// TrusteeValueFromObjectsAndSid returns a [TrusteeValue] referencing objectsAndSid. +// +// The caller must pin objectsAndSid using a [runtime.Pinner] for the lifetime of the TrusteeValue. func TrusteeValueFromObjectsAndSid(objectsAndSid *OBJECTS_AND_SID) TrusteeValue { return TrusteeValue(unsafe.Pointer(objectsAndSid)) } + +// TrusteeValueFromObjectsAndName returns a [TrusteeValue] referencing objectsAndName. +// +// The caller must pin objectsAndName using a [runtime.Pinner] for the lifetime of the TrusteeValue. func TrusteeValueFromObjectsAndName(objectsAndName *OBJECTS_AND_NAME) TrusteeValue { return TrusteeValue(unsafe.Pointer(objectsAndName)) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/windows/syscall_windows.go new/vendor/golang.org/x/sys/windows/syscall_windows.go --- old/vendor/golang.org/x/sys/windows/syscall_windows.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/windows/syscall_windows.go 2026-07-29 01:11:12.000000000 +0200 @@ -1728,11 +1728,15 @@ // the more common *uint16 string type. func NewNTString(s string) (*NTString, error) { var nts NTString - s8, err := BytePtrFromString(s) + s8, err := ByteSliceFromString(s) if err != nil { return nil, err } - RtlInitString(&nts, s8) + // The source string plus its terminating NUL must fit within MAX_USHORT. + if len(s8) > MAX_USHORT { + return nil, syscall.EINVAL + } + RtlInitString(&nts, &s8[0]) return &nts, nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/sys/windows/types_windows.go new/vendor/golang.org/x/sys/windows/types_windows.go --- old/vendor/golang.org/x/sys/windows/types_windows.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/sys/windows/types_windows.go 2026-07-29 01:11:12.000000000 +0200 @@ -169,6 +169,7 @@ FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192 FORMAT_MESSAGE_MAX_WIDTH_MASK = 255 + MAX_USHORT = 0xffff MAX_PATH = 260 MAX_LONG_PATH = 32768 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/text/cases/context.go new/vendor/golang.org/x/text/cases/context.go --- old/vendor/golang.org/x/text/cases/context.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/text/cases/context.go 2026-07-29 01:11:12.000000000 +0200 @@ -249,7 +249,7 @@ return c.copy() } -// isUpper writes the isUppercase version of the current rune to dst. +// isUpper reports whether the current rune is in upper case. func isUpper(c *context) bool { ct := c.caseType() if c.info&hasMappingMask == 0 || ct == cUpper { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/text/cases/map.go new/vendor/golang.org/x/text/cases/map.go --- old/vendor/golang.org/x/text/cases/map.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/text/cases/map.go 2026-07-29 01:11:12.000000000 +0200 @@ -774,7 +774,7 @@ // From CLDR: // # Special titlecasing for Dutch initial "ij". // ::Any-Title(); - // # Fix up Ij at the beginning of a "word" (per Any-Title, notUAX #29) + // # Fix up Ij at the beginning of a "word" (per Any-Title, not UAX #29) // [:^WB=ALetter:] [:WB=Extend:]* [[:WB=MidLetter:][:WB=MidNumLet:]]? { Ij } → IJ ; if c.src[c.pSrc] != 'I' && c.src[c.pSrc] != 'i' { return title(c) @@ -794,7 +794,7 @@ // From CLDR: // # Special titlecasing for Dutch initial "ij". // ::Any-Title(); - // # Fix up Ij at the beginning of a "word" (per Any-Title, notUAX #29) + // # Fix up Ij at the beginning of a "word" (per Any-Title, not UAX #29) // [:^WB=ALetter:] [:WB=Extend:]* [[:WB=MidLetter:][:WB=MidNumLet:]]? { Ij } → IJ ; if c.src[c.pSrc] != 'I' { return isTitle(c) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/text/unicode/norm/forminfo.go new/vendor/golang.org/x/text/unicode/norm/forminfo.go --- old/vendor/golang.org/x/text/unicode/norm/forminfo.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/text/unicode/norm/forminfo.go 2026-07-29 01:11:12.000000000 +0200 @@ -121,8 +121,12 @@ // // When all 6 bits are zero, the character is inert, meaning it is never // influenced by normalization. +// +// We set flags to 0x80 (high bit 7 unused in quick check data) to indicate an invalid rune. type qcInfo uint8 +func (p Properties) isInvalid() bool { return p.flags == 0x80 } + func (p Properties) isYesC() bool { return p.flags&0x10 == 0 } func (p Properties) isYesD() bool { return p.flags&0x4 == 0 } @@ -247,6 +251,9 @@ // to a Properties. See the comment at the top of the file // for more information on the format. func compInfo(v uint16, sz int) Properties { + if sz == 0 { + return Properties{flags: 0x80, size: 1} + } if v == 0 { return Properties{size: uint8(sz)} } else if v >= 0x8000 { @@ -254,7 +261,7 @@ size: uint8(sz), ccc: uint8(v), tccc: uint8(v), - flags: qcInfo(v >> 8), + flags: qcInfo(v>>8) & 0x3f, } if p.ccc > 0 || p.combinesBackward() { p.nLead = uint8(p.flags & 0x3) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/text/unicode/norm/iter.go new/vendor/golang.org/x/text/unicode/norm/iter.go --- old/vendor/golang.org/x/text/unicode/norm/iter.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/text/unicode/norm/iter.go 2026-07-29 01:11:12.000000000 +0200 @@ -376,16 +376,12 @@ goto doNorm } prevCC = i.info.tccc - sz := int(i.info.size) - if sz == 0 { - sz = 1 // illegal rune: copy byte-by-byte - } - p := outp + sz + p := outp + int(i.info.size) if p > len(i.buf) { break } outp = p - i.p += sz + i.p += int(i.info.size) if i.p >= i.rb.nsrc { i.setDone() break diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/text/unicode/norm/normalize.go new/vendor/golang.org/x/text/unicode/norm/normalize.go --- old/vendor/golang.org/x/text/unicode/norm/normalize.go 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/golang.org/x/text/unicode/norm/normalize.go 2026-07-29 01:11:12.000000000 +0200 @@ -148,7 +148,7 @@ // patched buffer and whether the decomposition is still in progress. func patchTail(rb *reorderBuffer) bool { info, p := lastRuneStart(&rb.f, rb.out) - if p == -1 || info.size == 0 { + if p == -1 || info.isInvalid() { return true } end := p + int(info.size) @@ -225,7 +225,7 @@ } fd := &rb.f if doMerge { - var info Properties + info := Properties{flags: 0x80, size: 1} // invalid rune if p < n { info = fd.info(src, p) if !info.BoundaryBefore() || info.nLeadingNonStarters() > 0 { @@ -235,7 +235,7 @@ p = decomposeSegment(rb, p, true) } } - if info.size == 0 { + if info.isInvalid() { rb.doFlush() // Append incomplete UTF-8 encoding. return src.appendSlice(rb.out, p, n) @@ -314,7 +314,7 @@ continue } info := f.info(src, i) - if info.size == 0 { + if info.isInvalid() { if atEOF { // include incomplete runes return n, true @@ -379,7 +379,7 @@ // CGJ insertion points correctly. Luckily it doesn't have to. for { info := fd.info(src, i) - if info.size == 0 { + if info.isInvalid() { return -1 } if s := ss.next(info); s != ssSuccess { @@ -424,7 +424,7 @@ } fd := formTable[f] info := fd.info(src, 0) - if info.size == 0 { + if info.isInvalid() { if atEOF { return 1 } @@ -435,7 +435,7 @@ for i := int(info.size); i < nsrc; i += int(info.size) { info = fd.info(src, i) - if info.size == 0 { + if info.isInvalid() { if atEOF { return i } @@ -465,7 +465,7 @@ if p == -1 { return -1 } - if info.size == 0 { // ends with incomplete rune + if info.isInvalid() { // ends with incomplete rune if p == 0 { // starts with incomplete rune return -1 } @@ -504,7 +504,7 @@ func decomposeSegment(rb *reorderBuffer, sp int, atEOF bool) int { // Force one character to be consumed. info := rb.f.info(rb.src, sp) - if info.size == 0 { + if info.isInvalid() { return 0 } if s := rb.ss.next(info); s == ssStarter { @@ -528,7 +528,7 @@ break } info = rb.f.info(rb.src, sp) - if info.size == 0 { + if info.isInvalid() { if !atEOF { return int(iShortSrc) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt --- old/vendor/modules.txt 2026-07-06 13:40:55.000000000 +0200 +++ new/vendor/modules.txt 2026-07-29 01:11:12.000000000 +0200 @@ -143,7 +143,7 @@ # github.com/k0sproject/dig v0.4.0 ## explicit; go 1.21 github.com/k0sproject/dig -# github.com/k0sproject/rig/v2 v2.1.0 +# github.com/k0sproject/rig/v2 v2.1.1 ## explicit; go 1.26.0 github.com/k0sproject/rig/v2 github.com/k0sproject/rig/v2/byteslice @@ -194,8 +194,8 @@ # github.com/mattn/go-colorable v0.1.15 ## explicit; go 1.18 github.com/mattn/go-colorable -# github.com/mattn/go-isatty v0.0.22 -## explicit; go 1.21 +# github.com/mattn/go-isatty v0.0.24 +## explicit; go 1.20 github.com/mattn/go-isatty # github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d ## explicit @@ -260,7 +260,7 @@ # go.yaml.in/yaml/v2 v2.4.4 ## explicit; go 1.15 go.yaml.in/yaml/v2 -# golang.org/x/crypto v0.53.0 +# golang.org/x/crypto v0.54.0 ## explicit; go 1.25.0 golang.org/x/crypto/blowfish golang.org/x/crypto/chacha20 @@ -290,16 +290,16 @@ ## explicit; go 1.25.0 golang.org/x/oauth2 golang.org/x/oauth2/internal -# golang.org/x/sys v0.46.0 +# golang.org/x/sys v0.47.0 ## explicit; go 1.25.0 golang.org/x/sys/cpu golang.org/x/sys/plan9 golang.org/x/sys/unix golang.org/x/sys/windows -# golang.org/x/term v0.44.0 +# golang.org/x/term v0.45.0 ## explicit; go 1.25.0 golang.org/x/term -# golang.org/x/text v0.38.0 +# golang.org/x/text v0.40.0 ## explicit; go 1.25.0 golang.org/x/text/cases golang.org/x/text/encoding @@ -336,7 +336,7 @@ # gopkg.in/yaml.v3 v3.0.1 ## explicit gopkg.in/yaml.v3 -# k8s.io/apimachinery v0.36.2 +# k8s.io/apimachinery v0.36.3 ## explicit; go 1.26.0 k8s.io/apimachinery/pkg/api/errors k8s.io/apimachinery/pkg/api/meta @@ -379,7 +379,7 @@ k8s.io/apimachinery/pkg/version k8s.io/apimachinery/pkg/watch k8s.io/apimachinery/third_party/forked/golang/reflect -# k8s.io/client-go v0.36.2 +# k8s.io/client-go v0.36.3 ## explicit; go 1.26.0 k8s.io/client-go/features k8s.io/client-go/pkg/apis/clientauthentication
