fuck: stop he-who-must-not-be-named's antics

* verify instruction limit setting
* truncate output buffer
This commit is contained in:
Chris Sexton 2019-10-20 10:39:31 -04:00
parent aebabd3bb5
commit 68118136f2
1 changed files with 9 additions and 1 deletions

View File

@ -58,8 +58,16 @@ func (p *Fuck) message(c bot.Connector, kind bot.Kind, message msg.Message, args
m := gofuck.New(stdin, stdout)
m.InstructionLimit = p.c.GetInt("fuck.limit.instr", 100000)
if m.InstructionLimit < 1 {
m.InstructionLimit = 1
}
maxOut := p.c.GetInt("fuck.limit.output", 1000)
if err := m.Run([]byte(pgm)); err != nil {
err := m.Run([]byte(pgm))
if stdout.Len() > maxOut {
stdout.Truncate(maxOut)
}
if err != nil {
p.b.Send(c, bot.Message, message.Channel, fmt.Sprintf("Error running program: %s", err))
if stdout.Len() > 0 {
p.b.Send(c, bot.Message, message.Channel,