Skip to content

Commit 1b8efb6

Browse files
GiteaBotmeyfa-lawowxiaoguang
authored
Allow foreachref parser to grow its buffer (#35365) (#35376)
Backport #35365 by meyfa-lawo Signed-off-by: Fabian Meyer <[email protected]> Co-authored-by: Fabian Meyer <[email protected]> Co-authored-by: wxiaoguang <[email protected]>
1 parent 8f89e1e commit 1b8efb6

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

modules/git/foreachref/parser.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ type Parser struct {
3030
func NewParser(r io.Reader, format Format) *Parser {
3131
scanner := bufio.NewScanner(r)
3232

33+
// default MaxScanTokenSize = 64 kiB may be too small for some references,
34+
// so allow the buffer to grow up to 4x if needed
35+
scanner.Buffer(nil, 4*bufio.MaxScanTokenSize)
36+
3337
// in addition to the reference delimiter we specified in the --format,
3438
// `git for-each-ref` will always add a newline after every reference.
3539
refDelim := make([]byte, 0, len(format.refDelim)+1)
@@ -70,6 +74,9 @@ func NewParser(r io.Reader, format Format) *Parser {
7074
// { "objecttype": "tag", "refname:short": "v1.16.4", "object": "f460b7543ed500e49c133c2cd85c8c55ee9dbe27" }
7175
func (p *Parser) Next() map[string]string {
7276
if !p.scanner.Scan() {
77+
if err := p.scanner.Err(); err != nil {
78+
p.err = err
79+
}
7380
return nil
7481
}
7582
fields, err := p.parseRef(p.scanner.Text())

0 commit comments

Comments
 (0)