Skip to content

Commit 85dadf5

Browse files
authored
perf(misconf): do not convert contents of a YAML file to string (#7292)
Signed-off-by: nikpivkin <nikita.pivkin@smartforce.io>
1 parent bb2e26a commit 85dadf5

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed

pkg/iac/detection/detect.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -221,15 +221,15 @@ func init() {
221221
}
222222
data := buf.Bytes()
223223

224-
marker := "\n---\n"
225-
altMarker := "\r\n---\r\n"
226-
if bytes.Contains(data, []byte(altMarker)) {
224+
marker := []byte("\n---\n")
225+
altMarker := []byte("\r\n---\r\n")
226+
if bytes.Contains(data, altMarker) {
227227
marker = altMarker
228228
}
229229

230-
for _, partial := range strings.Split(string(data), marker) {
230+
for _, partial := range bytes.Split(data, marker) {
231231
var result map[string]any
232-
if err := yaml.Unmarshal([]byte(partial), &result); err != nil {
232+
if err := yaml.Unmarshal(partial, &result); err != nil {
233233
continue
234234
}
235235
match := true

pkg/iac/scanners/yaml/parser/parser.go

+5-6
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"io"
77
"io/fs"
88
"path/filepath"
9-
"strings"
109

1110
"gopkg.in/yaml.v3"
1211

@@ -77,15 +76,15 @@ func (p *Parser) ParseFile(_ context.Context, fsys fs.FS, path string) ([]any, e
7776

7877
var results []any
7978

80-
marker := "\n---\n"
81-
altMarker := "\r\n---\r\n"
82-
if bytes.Contains(contents, []byte(altMarker)) {
79+
marker := []byte("\n---\n")
80+
altMarker := []byte("\r\n---\r\n")
81+
if bytes.Contains(contents, altMarker) {
8382
marker = altMarker
8483
}
8584

86-
for _, partial := range strings.Split(string(contents), marker) {
85+
for _, partial := range bytes.Split(contents, marker) {
8786
var target any
88-
if err := yaml.Unmarshal([]byte(partial), &target); err != nil {
87+
if err := yaml.Unmarshal(partial, &target); err != nil {
8988
return nil, err
9089
}
9190
results = append(results, target)

0 commit comments

Comments
 (0)