Skip to content

Commit 73e9a90

Browse files
authored
Merge pull request #1984 from nanjj/unmarshalref
Fix reference passing when yaml unmarshal
2 parents 6a8bf29 + db29bd7 commit 73e9a90

File tree

17 files changed

+30
-29
lines changed

17 files changed

+30
-29
lines changed

cmd/incus-agent/templates.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ func templatesApply(path string) ([]string, error) {
2626
return nil, fmt.Errorf("Failed to read metadata: %w", err)
2727
}
2828

29-
metadata := new(api.ImageMetadata)
30-
err = yaml.Unmarshal(content, &metadata)
29+
metadata := &api.ImageMetadata{}
30+
err = yaml.Unmarshal(content, metadata)
3131
if err != nil {
3232
return nil, fmt.Errorf("Could not parse metadata.yaml: %w", err)
3333
}

cmd/incus/utils_properties_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ type utilsPropertiesTestSuite struct {
1313
}
1414

1515
func TestUtilsPropertiesTestSuite(t *testing.T) {
16-
suite.Run(t, new(utilsPropertiesTestSuite))
16+
suite.Run(t, &utilsPropertiesTestSuite{})
1717
}
1818

1919
func (s *utilsPropertiesTestSuite) TestStringToTimeHookFuncValidData() {

cmd/incus/utils_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ type utilsTestSuite struct {
1414
}
1515

1616
func TestUtilsTestSuite(t *testing.T) {
17-
suite.Run(t, new(utilsTestSuite))
17+
suite.Run(t, &utilsTestSuite{})
1818
}
1919

2020
func (s *utilsTestSuite) TestIsAliasesSubsetTrue() {

cmd/incusd/api_cluster_evacuation.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,7 @@ func restoreClusterMember(d *Daemon, r *http.Request) response.Response {
362362
// Limit the number of concurrent migrations to run at the same time
363363
numParallelMigrations := max(runtime.NumCPU()/16, 1)
364364

365-
group := new(errgroup.Group)
365+
group := &errgroup.Group{}
366366
group.SetLimit(numParallelMigrations)
367367

368368
// Migrate back the remote instances.

cmd/incusd/instance_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -532,5 +532,5 @@ func (suite *containerTestSuite) TestContainer_findIdmap_maxed() {
532532
}
533533

534534
func TestContainerTestSuite(t *testing.T) {
535-
suite.Run(t, new(containerTestSuite))
535+
suite.Run(t, &containerTestSuite{})
536536
}

cmd/incusd/snapshot_common_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,5 @@ func (s *snapshotCommonTestSuite) TestSnapshotScheduling() {
4040
}
4141

4242
func TestSnapshotCommon(t *testing.T) {
43-
suite.Run(t, new(snapshotCommonTestSuite))
43+
suite.Run(t, &snapshotCommonTestSuite{})
4444
}

internal/cmd/sort_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ type sortSuite struct {
1212
}
1313

1414
func TestSortSuite(t *testing.T) {
15-
suite.Run(t, new(sortSuite))
15+
suite.Run(t, &sortSuite{})
1616
}
1717

1818
// stringList can be used to sort a list of strings.

internal/instancewriter/instance_tar_writer.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ type InstanceTarWriter struct {
2525

2626
// NewInstanceTarWriter returns a ContainerTarWriter for the provided target Writer and id map.
2727
func NewInstanceTarWriter(writer io.Writer, idmapSet *idmap.Set) *InstanceTarWriter {
28-
ctw := new(InstanceTarWriter)
28+
ctw := &InstanceTarWriter{}
2929
ctw.tarWriter = tar.NewWriter(writer)
3030
ctw.idmapSet = idmapSet
3131
ctw.linkMap = map[uint64]string{}

internal/server/auth/authorization_objects_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ type objectSuite struct {
1414
}
1515

1616
func TestObjectSuite(t *testing.T) {
17-
suite.Run(t, new(objectSuite))
17+
suite.Run(t, &objectSuite{})
1818
}
1919

2020
func (s *objectSuite) TestObjectCertificate() {

internal/server/db/db_internal_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ func (s *dbTestSuite) CreateTestTx() (*sql.Tx, func()) {
7878
}
7979

8080
func TestDBTestSuite(t *testing.T) {
81-
suite.Run(t, new(dbTestSuite))
81+
suite.Run(t, &dbTestSuite{})
8282
}
8383

8484
func (s *dbTestSuite) Test_deleting_a_container_cascades_on_related_tables() {

internal/server/dns/handler.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ func (d dnsHandler) ServeDNS(w dns.ResponseWriter, r *dns.Msg) {
2323

2424
// Check if we're ready to serve queries.
2525
if d.server.zoneRetriever == nil {
26-
m := new(dns.Msg)
26+
m := &dns.Msg{}
2727
m.SetRcode(r, dns.RcodeServerFailure)
2828
err := w.WriteMsg(m)
2929
if err != nil {
@@ -35,7 +35,7 @@ func (d dnsHandler) ServeDNS(w dns.ResponseWriter, r *dns.Msg) {
3535

3636
// Only allow a single request.
3737
if len(r.Question) != 1 {
38-
m := new(dns.Msg)
38+
m := &dns.Msg{}
3939
m.SetRcode(r, dns.RcodeServerFailure)
4040
err := w.WriteMsg(m)
4141
if err != nil {
@@ -47,7 +47,7 @@ func (d dnsHandler) ServeDNS(w dns.ResponseWriter, r *dns.Msg) {
4747

4848
// Check that it's a supported request type.
4949
if r.Question[0].Qtype != dns.TypeAXFR && r.Question[0].Qtype != dns.TypeIXFR && r.Question[0].Qtype != dns.TypeSOA {
50-
m := new(dns.Msg)
50+
m := &dns.Msg{}
5151
m.SetRcode(r, dns.RcodeNotImplemented)
5252
err := w.WriteMsg(m)
5353
if err != nil {
@@ -61,7 +61,7 @@ func (d dnsHandler) ServeDNS(w dns.ResponseWriter, r *dns.Msg) {
6161
name := strings.TrimSuffix(r.Question[0].Name, ".")
6262
ip, _, err := net.SplitHostPort(w.RemoteAddr().String())
6363
if err != nil {
64-
m := new(dns.Msg)
64+
m := &dns.Msg{}
6565
m.SetRcode(r, dns.RcodeServerFailure)
6666
err := w.WriteMsg(m)
6767
if err != nil {
@@ -72,15 +72,15 @@ func (d dnsHandler) ServeDNS(w dns.ResponseWriter, r *dns.Msg) {
7272
}
7373

7474
// Prepare the response.
75-
m := new(dns.Msg)
75+
m := &dns.Msg{}
7676
m.SetReply(r)
7777
m.Authoritative = true
7878

7979
// Load the zone.
8080
zone, err := d.server.zoneRetriever(name, r.Question[0].Qtype != dns.TypeSOA)
8181
if err != nil {
8282
// On failure, return NXDOMAIN.
83-
m := new(dns.Msg)
83+
m := &dns.Msg{}
8484
m.SetRcode(r, dns.RcodeNameError)
8585
err := w.WriteMsg(m)
8686
if err != nil {
@@ -93,7 +93,7 @@ func (d dnsHandler) ServeDNS(w dns.ResponseWriter, r *dns.Msg) {
9393
// Check access.
9494
if !d.isAllowed(zone.Info, ip, r.IsTsig(), w.TsigStatus() == nil) {
9595
// On auth failure, return NXDOMAIN to avoid information leaks.
96-
m := new(dns.Msg)
96+
m := &dns.Msg{}
9797
m.SetRcode(r, dns.RcodeNameError)
9898
err := w.WriteMsg(m)
9999
if err != nil {
@@ -111,7 +111,7 @@ func (d dnsHandler) ServeDNS(w dns.ResponseWriter, r *dns.Msg) {
111111
if err != nil {
112112
logger.Errorf("Bad DNS record in zone %q: %v", name, err)
113113

114-
m := new(dns.Msg)
114+
m := &dns.Msg{}
115115
m.SetRcode(r, dns.RcodeFormatError)
116116
err := w.WriteMsg(m)
117117
if err != nil {

internal/server/instance/drivers/driver_lxc.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6176,7 +6176,7 @@ func (d *lxc) resetContainerDiskIdmap(srcIdmap *idmap.Set) error {
61766176
}
61776177

61786178
if dstIdmap == nil {
6179-
dstIdmap = new(idmap.Set)
6179+
dstIdmap = &idmap.Set{}
61806180
}
61816181

61826182
if !srcIdmap.Equals(dstIdmap) {
@@ -6364,7 +6364,7 @@ func (d *lxc) MigrateReceive(args instance.MigrateReceiveArgs) error {
63646364

63656365
d.logger.Debug("Sent migration response to source")
63666366

6367-
srcIdmap := new(idmap.Set)
6367+
srcIdmap := &idmap.Set{}
63686368
for _, idmapSet := range offerHeader.Idmap {
63696369
e := idmap.Entry{
63706370
IsUID: *idmapSet.Isuid,
@@ -6950,7 +6950,7 @@ func (d *lxc) templateApplyNow(trigger instance.TemplateTrigger) error {
69506950
return fmt.Errorf("Failed to read metadata: %w", err)
69516951
}
69526952

6953-
metadata := new(api.ImageMetadata)
6953+
metadata := &api.ImageMetadata{}
69546954
err = yaml.Unmarshal(content, &metadata)
69556955
if err != nil {
69566956
return fmt.Errorf("Could not parse %s: %w", fname, err)

internal/server/instance/drivers/driver_qemu.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3243,8 +3243,8 @@ func (d *qemu) templateApplyNow(trigger instance.TemplateTrigger, path string) e
32433243
return fmt.Errorf("Failed to read metadata: %w", err)
32443244
}
32453245

3246-
metadata := new(api.ImageMetadata)
3247-
err = yaml.Unmarshal(content, &metadata)
3246+
metadata := &api.ImageMetadata{}
3247+
err = yaml.Unmarshal(content, metadata)
32483248
if err != nil {
32493249
return fmt.Errorf("Could not parse %s: %w", fname, err)
32503250
}

internal/version/version_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ type versionTestSuite struct {
1111
}
1212

1313
func TestVersionTestSuite(t *testing.T) {
14-
suite.Run(t, new(versionTestSuite))
14+
suite.Run(t, &versionTestSuite{})
1515
}
1616

1717
func (s *versionTestSuite) TestNewVersion() {

shared/cliconfig/file.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ func LoadConfig(path string) (*Config, error) {
6464

6565
// Decode the YAML document
6666
c := NewConfig(configDir, false)
67-
err = yaml.Unmarshal(content, &c)
67+
err = yaml.Unmarshal(content, c)
6868
if err != nil {
6969
return nil, fmt.Errorf("Unable to decode the configuration: %w", err)
7070
}
@@ -80,7 +80,7 @@ func LoadConfig(path string) (*Config, error) {
8080
globalConf := NewConfig("", false)
8181
content, err = os.ReadFile(globalConf.GlobalConfigPath("config.yml"))
8282
if err == nil {
83-
err = yaml.Unmarshal(content, &globalConf)
83+
err = yaml.Unmarshal(content, globalConf)
8484
if err != nil {
8585
return nil, fmt.Errorf("Unable to decode the configuration: %w", err)
8686
}

shared/osarch/release_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ type releaseTestSuite struct {
1212
}
1313

1414
func TestReleaseTestSuite(t *testing.T) {
15-
suite.Run(t, new(releaseTestSuite))
15+
suite.Run(t, &releaseTestSuite{})
1616
}
1717

1818
func (s *releaseTestSuite) TestGetOSRelease() {

shared/util/struct.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ import (
77

88
// DeepCopy copies src to dest by using encoding/gob so its not that fast.
99
func DeepCopy(src, dest any) error {
10-
buff := new(bytes.Buffer)
10+
buff := &bytes.Buffer{}
11+
1112
enc := gob.NewEncoder(buff)
1213
dec := gob.NewDecoder(buff)
1314
err := enc.Encode(src)

0 commit comments

Comments
 (0)