opts: fix potential panic in trimQuotes

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn 2022-06-09 07:59:31 +02:00
Родитель c59773f155
Коммит a51ea675b2
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 76698F39D527CE8C
2 изменённых файлов: 13 добавлений и 0 удалений

Просмотреть файл

@ -22,6 +22,9 @@ func (s *QuotedString) String() string {
}
func trimQuotes(value string) string {
if len(value) < 2 {
return value
}
lastIndex := len(value) - 1
for _, char := range []byte{'\'', '"'} {
if value[0] == char && value[lastIndex] == char {

Просмотреть файл

@ -28,3 +28,13 @@ func TestQuotedStringSetWithNoQuotes(t *testing.T) {
assert.NilError(t, qs.Set("something"))
assert.Check(t, is.Equal("something", qs.String()))
}
func TestQuotedStringShort(t *testing.T) {
value := ""
qs := NewQuotedString(&value)
assert.NilError(t, qs.Set(`"`))
assert.Check(t, is.Equal(`"`, qs.String()))
assert.NilError(t, qs.Set(`'`))
assert.Check(t, is.Equal(`'`, qs.String()))
}