From 41813cc15a1392cdb71daee789a11e2025d4d817 Mon Sep 17 00:00:00 2001 From: Shivaram Lingamneni Date: Fri, 21 Feb 2020 12:41:04 -0500 Subject: [PATCH] fix #791 --- irc/handlers.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/irc/handlers.go b/irc/handlers.go index 8f3827b9..814543ef 100644 --- a/irc/handlers.go +++ b/irc/handlers.go @@ -804,6 +804,25 @@ func debugHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Res case "STOPCPUPROFILE": pprof.StopCPUProfile() rb.Notice(fmt.Sprintf("CPU profiling stopped")) + + case "CRASHSERVER": + if !client.HasRoleCapabs("oper:rehash") { + rb.Notice(client.t("You must have rehash permissions in order to execute DEBUG CRASHSERVER")) + return false + } + code := unregisterConfirmationCode(server.name, server.ctime) + if len(msg.Params) == 1 || msg.Params[1] != code { + rb.Notice(fmt.Sprintf(client.t("To crash the server, issue the following command: /DEBUG CRASHSERVER %s"), code)) + return false + } + go func() { + // intentional nil dereference on a new goroutine, bypassing recover-from-errors + var i, j *int + *i = *j + }() + + default: + rb.Notice(client.t("Unrecognized DEBUG subcommand")) } return false }