Filename: Private: No Yes Filetype: Auto ABAP Sophia Apex Azure CLI Batch Bicep C Cameligo Clojure CoffeeScript C++ C# CSP CSS Cypher Dart Dockerfile ECL Elixir Flow9 FreeMarker2 FreeMarker2 (Angle/Bracket) FreeMarker2 (Angle/Dollar) FreeMarker2 (Auto/Bracket) FreeMarker2 (Auto/Dollar) FreeMarker2 (Bracket/Bracket) FreeMarker2 (Bracket/Dollar) F# Go GraphQL Handlebars Terraform HTML Ini Java JavaScript Julia Kotlin Less Lexon Liquid Lua Modula-3 Markdown MDX MIPS DAX MySQL Objective-C Pascal Pascaligo Perl PostgreSQL PHP Plain text ATS PQ PowerShell Protobuf Pug Python Q# R Razor Redis Redshift ReStructuredText Ruby Rust Small Basic Scala Scheme Sass Shell Solidity SPARQL SQL StructuredText Swift SV Tcl Twig TypeScript TypeSpec Visual Basic V WebGPU Shading Language XML YAML Indentation: Spaces Tabs 1 2 3 4 5 6 7 8 Clone diff --git a/modules/modtcl.cpp b/modules/modtcl.cpp index df7f92f4..365da2e7 100644 --- a/modules/modtcl.cpp +++ b/modules/modtcl.cpp @@ -248,8 +248,9 @@ class CModTcl : public CModule { // chan specific unsigned int nLength = vChans.size(); for (unsigned int n = 0; n < nLength; n++) { + CString sChannel = TclEscape(CString(vChans[n]->GetName())); sCommand = "Binds::ProcessNick {" + sOldNick + "} {" + sHost + - "} - {" + vChans[n]->GetName() + "} {" + sNewNickTmp + + "} - {" + sChannel + "} {" + sNewNickTmp + "}"; int i = Tcl_Eval(interp, sCommand.c_str()); if (i != TCL_OK) { @@ -260,14 +261,16 @@ class CModTcl : public CModule { void OnKick(const CNick& OpNick, const CString& sKickedNick, CChan& Channel, const CString& sMessage) override { + CString sMes = TclEscape(sMessage); CString sOpNick = TclEscape(CString(OpNick.GetNick())); CString sNick = TclEscape(sKickedNick); CString sOpHost = TclEscape(CString(OpNick.GetIdent() + "@" + OpNick.GetHost())); + CString sChannel = TclEscape(Channel.GetName()); CString sCommand = "Binds::ProcessKick {" + sOpNick + "} {" + sOpHost + - "} - {" + Channel.GetName() + "} {" + sNick + "} {" + - sMessage + "}"; + "} - {" + sChannel + "} {" + sNick + "} {" + + sMes + "}"; int i = Tcl_Eval(interp, sCommand.c_str()); if (i != TCL_OK) { PutModule(Tcl_GetStringResult(interp)); Paste