Skip to content

Commit bcc0ad7

Browse files
committed
Replace uses of slices.Clone()
Avoid golang/go#64759 Signed-off-by: Rob Murray <[email protected]>
1 parent b306258 commit bcc0ad7

File tree

2 files changed

+9
-11
lines changed

2 files changed

+9
-11
lines changed

libnetwork/internal/resolvconf/resolvconf.go

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,11 @@ import (
2222
"bufio"
2323
"bytes"
2424
"context"
25-
_ "embed"
2625
"fmt"
2726
"io"
2827
"io/fs"
2928
"net/netip"
3029
"os"
31-
"slices"
3230
"strconv"
3331
"strings"
3432
"text/template"
@@ -145,7 +143,7 @@ func (rc *ResolvConf) SetHeader(c string) {
145143

146144
// NameServers returns addresses used in nameserver directives.
147145
func (rc *ResolvConf) NameServers() []netip.Addr {
148-
return slices.Clone(rc.nameServers)
146+
return append([]netip.Addr(nil), rc.nameServers...)
149147
}
150148

151149
// OverrideNameServers replaces the current set of nameservers.
@@ -156,7 +154,7 @@ func (rc *ResolvConf) OverrideNameServers(nameServers []netip.Addr) {
156154

157155
// Search returns the current DNS search domains.
158156
func (rc *ResolvConf) Search() []string {
159-
return slices.Clone(rc.search)
157+
return append([]string(nil), rc.search...)
160158
}
161159

162160
// OverrideSearch replaces the current DNS search domains.
@@ -173,7 +171,7 @@ func (rc *ResolvConf) OverrideSearch(search []string) {
173171

174172
// Options returns the current options.
175173
func (rc *ResolvConf) Options() []string {
176-
return slices.Clone(rc.options)
174+
return append([]string(nil), rc.options...)
177175
}
178176

179177
// Option finds the last option named search, and returns (value, true) if
@@ -196,7 +194,7 @@ func (rc *ResolvConf) Option(search string) (string, bool) {
196194

197195
// OverrideOptions replaces the current DNS options.
198196
func (rc *ResolvConf) OverrideOptions(options []string) {
199-
rc.options = slices.Clone(options)
197+
rc.options = append([]string(nil), options...)
200198
rc.md.NDotsFrom = ""
201199
if _, exists := rc.Option("ndots"); exists {
202200
rc.md.NDotsFrom = "override"
@@ -318,7 +316,7 @@ func (rc *ResolvConf) TransformForIntNS(
318316
}
319317

320318
rc.md.Transform = "internal resolver"
321-
return slices.Clone(rc.md.ExtNameServers), nil
319+
return append([]ExtDNSEntry(nil), rc.md.ExtNameServers...), nil
322320
}
323321

324322
// Generate returns content suitable for writing to a resolv.conf file. If comments

libnetwork/internal/resolvconf/resolvconf_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -221,15 +221,15 @@ func TestRCModify(t *testing.T) {
221221
rc.OverrideSearch(tc.overrideSearch)
222222
rc.OverrideOptions(tc.overrideOptions)
223223

224-
assert.Check(t, is.DeepEqual(rc.NameServers(), overrideNS, cmpopts.EquateComparable(netip.Addr{})))
225-
assert.Check(t, is.DeepEqual(rc.Search(), tc.overrideSearch))
226-
assert.Check(t, is.DeepEqual(rc.Options(), tc.overrideOptions))
224+
assert.Check(t, is.DeepEqual(rc.NameServers(), overrideNS, cmpopts.EquateEmpty(), cmpopts.EquateComparable(netip.Addr{})))
225+
assert.Check(t, is.DeepEqual(rc.Search(), tc.overrideSearch, cmpopts.EquateEmpty()))
226+
assert.Check(t, is.DeepEqual(rc.Options(), tc.overrideOptions, cmpopts.EquateEmpty()))
227227
}
228228

229229
if tc.addOption != "" {
230230
options := rc.Options()
231231
rc.AddOption(tc.addOption)
232-
assert.Check(t, is.DeepEqual(rc.Options(), append(options, tc.addOption)))
232+
assert.Check(t, is.DeepEqual(rc.Options(), append(options, tc.addOption), cmpopts.EquateEmpty()))
233233
}
234234

235235
d := t.TempDir()

0 commit comments

Comments
 (0)