Skip to content

Commit 461bac7

Browse files
committed
make the trufflehog parser not error out when receiving an empty file
1 parent 46502c8 commit 461bac7

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

components/scanners/trufflehog/internal/transformer/transformer.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,10 @@ func (g *trufflehogTransformer) Transform(ctx context.Context) ([]*ocsf.Vulnerab
207207
}
208208
return nil, errors.Errorf("failed to read raw output file '%s': %w", g.rawOutFilePath, err)
209209
}
210-
210+
if len(b) == 0 {
211+
logger.Info("input file is empty, exiting without findings")
212+
return []*ocsf.VulnerabilityFinding{}, nil
213+
}
211214
truffleResults, err := ParseMultiJSONMessages(b)
212215
if err != nil {
213216
return nil, errors.Errorf("could not parse trufflehog file with multiple messages, err: %w", err)

components/scanners/trufflehog/internal/transformer/transformer_test.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package transformer
33
import (
44
"context"
55
_ "embed"
6+
"os"
67
"testing"
78
"time"
89

@@ -218,4 +219,20 @@ func TestTrufflehogTransformer_Transform(t *testing.T) {
218219
assert.NotEmptyf(t, vulnerability.Cwe.Caption, "Unexpected empty value for caption in vulnerability for finding %d", idx)
219220
}
220221
})
222+
t.Run("it should return an empty finding array when the input file is empty", func(t *testing.T) {
223+
emptyFilePath := "./testdata/empty_trufflehog.json"
224+
require.NoError(t, os.WriteFile(emptyFilePath, []byte{}, 0644))
225+
defer func() { require.NoError(t, os.Remove(emptyFilePath)) }()
226+
227+
ocsfTransformer, err := New(
228+
TrufflehogRawOutFilePath(emptyFilePath),
229+
TrufflehogTransformerWithTarget(ocsffindinginfo.DataSource_TARGET_TYPE_REPOSITORY),
230+
TrufflehogTransformerWithClock(clock),
231+
)
232+
require.NoError(t, err)
233+
234+
findings, err := ocsfTransformer.Transform(ctx)
235+
require.NoError(t, err)
236+
assert.Empty(t, findings, "Expected no findings for an empty input file")
237+
})
221238
}

0 commit comments

Comments
 (0)