Skip to content

Commit 7878fa3

Browse files
authored
Fix possible infinite loop while listing action files (treeverse#9390)
* Fix possible infinite loop while listing action files * Update actions_source.go
1 parent 5de3e69 commit 7878fa3

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

pkg/catalog/actions_source.go

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,19 +50,22 @@ func (s *ActionsSource) List(ctx context.Context, record graveler.HookRecord) ([
5050

5151
func (s *ActionsSource) list(ctx context.Context, record graveler.HookRecord) ([]string, error) {
5252
const amount = 1000
53-
var after string
54-
hasMore := true
55-
var names []string
56-
for hasMore {
57-
var res []*DBEntry
58-
var err error
59-
res, hasMore, err = s.catalog.ListEntries(ctx, record.Repository.RepositoryID.String(), record.SourceRef.String(), repositoryLocation, after, DefaultPathDelimiter, amount)
53+
var (
54+
after string
55+
names []string
56+
)
57+
for {
58+
res, hasMore, err := s.catalog.ListEntries(ctx, record.Repository.RepositoryID.String(), record.SourceRef.String(), repositoryLocation, after, DefaultPathDelimiter, amount)
6059
if err != nil {
6160
return nil, fmt.Errorf("listing actions: %w", err)
6261
}
6362
for _, result := range res {
6463
names = append(names, result.Path)
6564
}
65+
if !hasMore {
66+
break
67+
}
68+
after = res[len(res)-1].Path
6669
}
6770
return names, nil
6871
}

0 commit comments

Comments
 (0)