Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bug: runtime error: index out of range [-1] when using custom profanity list #43

Open
oneart-dev opened this issue Dec 10, 2022 · 0 comments
Labels
bug Something isn't working

Comments

@oneart-dev
Copy link

Describe the bug

Panic error on profanity free message:
"Ядром сообщества является команда"

Error log:

2022/12/10 16:06:23 http: panic serving 127.0.0.1:55219: runtime error: index out of range [-1]
goroutine 167 [running]:
net/http.(*conn).serve.func1()
        /usr/local/go/src/net/http/server.go:1850 +0xb0
panic({0x1043c9860, 0x14004732060})
        /usr/local/go/src/runtime/panic.go:890 +0x258
go.opentelemetry.io/otel/sdk/trace.(*recordingSpan).End.func1()
        /Users/oneart/go/pkg/mod/go.opentelemetry.io/otel/[email protected]/trace/span.go:393 +0x2c
go.opentelemetry.io/otel/sdk/trace.(*recordingSpan).End(0x140045ee780, {0x0, 0x0, 0x7700684000817cc0?})
        /Users/oneart/go/pkg/mod/go.opentelemetry.io/otel/[email protected]/trace/span.go:432 +0x6e8
panic({0x1043c9860, 0x14004732060})
        /usr/local/go/src/runtime/panic.go:884 +0x204
github.com/TwiN/go-away.(*ProfanityDetector).Censor(0x140005834a0, {0x140008174c0, 0x3f})
        /Users/oneart/go/pkg/mod/github.com/!twi!n/[email protected]/goaway.go:193 +0x564
github.com/oneart-dev/****/services.publicProfileService.Update({{}, {0x140005834a0}, {0x14000023ab0}, {0x140001248d0}, {0x1044e23f0, 0x1400124ad80}, {0x1044dab90, 0x14001361e60}, {0x1044ef0e0, 0x1400016a100}, ...}, ...)

What do you see?

Panic

What do you expect to see?

It should not touch the string as no profanity in this words

List the steps that must be taken to reproduce this issue

I'm sorry to post this words here :)

profanitiesAll := []string{
		"блять", "блядь", "бляди", "блядина", "блядище", "блядский", "блядство", "блядун", "блядуны", "блядунья", "блядюга", "блядюги", "блядюха", "блядюшка", "блядюшки", "блядюшник", "блядюшница", "блядюшницы", "блядюшничать", "блядюшничество", "блядюшный", "архипиздрит", "басран", "бздение", "бздеть", "бздех", "бзднуть", "бздун", "бздунья", "бздюха", "бикса", "блежник", "блудилище", "бляд", "блябу", "блябуду", "блядун", "блядунья", "блядь", "блядюга", "взьебка", "волосянка", "взьебывать", "вз'ебывать", "выблядок", "выблядыш", "выебать", "выеть", "выпердеть", "высраться", "выссаться", "говенка", "говенный", "говешка", "говназия", "говнецо", "говно", "говноед", "говночист", "говнюк", "говнюха", "говнядина", "говняк", "говняный", "говнять", "гондон", "дермо", "долбоеб", "дрисня", "дрист", "дристать", "дристануть", "дристун", "дристуха", "дрочена", "дрочила", "дрочилка", "дрочить", "дрочка", "ебало", "ебальник", "ебануть", "ебаный", "ебарь", "ебатория", "ебать", "ебаться", "ебец", "ебливый", "ебля", "ебнуть", "ебнуться", "ебня", "ебун", "елда", "елдак", "елдачить", "заговнять", "задристать", "задрока", "заеба", "заебанец", "заебать", "заебаться", "заебываться", "заеть", "залупа", "залупаться", "залупить", "залупиться", "замудохаться", "засерун", "засеря", "засерать", "засирать", "засранец", "засрун", "захуячить", "злоебучий", "изговнять", "изговняться", "кляпыжиться", "курва", "курвенок", "курвин", "курвяжник", "курвяжница", "курвяжный", "манда", "мандавошка", "мандей", "мандеть", "мандища", "мандюк", "минет", "минетчик", "минетчица", "мокрохвостка", "мокрощелка", "мудак", "муде", "мудеть", "мудила", "мудистый", "мудня", "мудоеб", "мудозвон", "муйня", "набздеть", "наговнять", "надристать", "надрочить", "наебать", "наебнуться", "наебывать", "нассать", "нахезать", "нахуйник", "насцать", "обдристаться", "обдристаться", "обосранец", "обосрать", "обосцать", "обосцаться", "обсирать", "опизде", "отпиздячить", "отпороть", "отъеть", "охуевательский", "охуевать", "охуевающий", "охуеть", "охуительный", "охуячивать", "охуячить", "педрик", "пердеж", "пердение", "пердеть", "пердильник", "перднуть", "пердун", "пердунец", "пердунина", "пердунья", "пердуха", "пердь", "передок", "пернуть", "пидор", "пизда", "пиздануть", "пизденка", "пиздеть", "пиздить", "пиздища", "пиздобратия", "пиздоватый", "пиздорванец", "пиздорванка", "пиздострадатель", "пиздун", "пиздюга", "пиздюк", "пиздячить", "писять", "питишка", "плеха", "подговнять", "подъебнуться", "поебать", "поеть", "попысать", "посрать", "поставить", "поцоватый", "презерватив", "проблядь", "проебать", "промандеть", "промудеть", "пропиздеть", "пропиздячить", "пысать", "разъеба", "разъебай", "распиздай", "распиздеться", "распиздяй", "распроеть", "растыка", "сговнять", "секель", "серун", "серька", "сика", "сикать", "сикель", "сирать", "сирывать", "скурвиться", "скуреха", "скурея", "скуряга", "скуряжничать", "спиздить", "срака", "сраный", "сранье", "срать", "срун", "ссака", "ссаки", "ссать", "старпер", "струк", "суходрочка", "сцавинье", "сцака", "сцаки", "сцание", "сцать", "сциха", "сцуль", "сцыха", "сыкун", "титечка", "титечный", "титка", "титочка", "титька", "трипер", "триппер", "уеть", "усраться", "усцаться", "фик", "фуй", "хезать", "хер", "херня", "херовина", "херовый", "хитрожопый", "хлюха", "хуевина", "хуевый", "хуек", "хуепромышленник", "хуерик", "хуесос", "хуище", "хуй", "хуйня", "хуйрик", "хуякать", "хуякнуть", "целка", "шлюха",
	}

	profanitiesAll = append(profanitiesAll, goaway.DefaultProfanities...)
	falsePositives := goaway.DefaultFalsePositives
	falseNegatives := goaway.DefaultFalsePositives

	profanityDetector := goaway.NewProfanityDetector().WithCustomDictionary(profanitiesAll, falsePositives, falseNegatives)

profanityDetector.Censor("Ядром сообщества является команда")

Version

1.6.8

Additional information

If I remove my list of profanities all seems to work fine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant