Fix T102707: Flamenco Manager crash on frame range without hyphen

The "invalid range" error reporting had an infinite loop, causing a crash.
This is now resolved.
This commit is contained in:
Sybren A. Stüvel 2023-01-03 16:16:44 +01:00
parent 84470eeb81
commit 2df5a1089a
2 changed files with 7 additions and 1 deletions

View File

@ -41,7 +41,7 @@ type ErrInvalidRange struct {
func (e ErrInvalidRange) Error() string {
if e.err != nil {
return fmt.Sprintf("invalid range \"%v\": %s (%s)", e.Range, e.Message, e.Error())
return fmt.Sprintf("invalid range \"%v\": %s (%s)", e.Range, e.Message, e.err.Error())
}
return fmt.Sprintf("invalid range \"%v\": %s", e.Range, e.Message)
}

View File

@ -42,6 +42,12 @@ func TestFrameChunkerHappyExtraWhitespace(t *testing.T) {
assert.Equal(t, []string{"1-4", "5-8", "9,10,20,21", "22-25", "40"}, chunks)
}
func TestFrameChunkerUnhappy(t *testing.T) {
_, err := jsFrameChunker(" 1 10", 4)
assert.Error(t, err)
assert.Contains(t, err.Error(), "1 10")
}
func TestFrameRangeExplode(t *testing.T) {
frames, err := frameRangeExplode("1..10,20..25,40")
assert.NoError(t, err)