there's no problem on SQL, everything SQL-related is working perfectly fine, the problem is just the tag. I just used a SQL example because I copy/paste it from my script
but let's try another example without SQL. This will crash the server:
Code:
[FUNCTION lol]
TAG.A=
FOR 100
TAG.A .= "<TAG.A> a" //line 4
ENDFOR
SERV.LOG LENGTH: <eval STRLEN(<TAG.A>)> / TAG: <TAG.A>
no dev will make a suicide loop like this on a live shard, it's just a test to simulate an exploit. Like a button that every time you press it will add a new text string to a TAG, and some noob make an macro using infinite loop and no-delay to press this button. Result: server crash
loop results:
FOR 1 = length 1
FOR 2 = length 5
FOR 3 = length 13
FOR 4 = length 29
FOR 5 = length 61
FOR 6 = length 125
FOR 7 = length 253
FOR 8 = length 509
FOR 9 = length 1021
FOR 10 = length 2045
FOR 11 = length 4093
FOR 12 = crash
if the loop value is higher but near 12 (example: 13 or 14), sphereSvr.exe just force-close with absolutely no console error. There's no error even on log files after crash.
using loop 20 it will spam some console exceptions and then crash
Code:
03:11:DEBUG:__ thread (10524) __ | # | _____ function _____________ | ticks passed from previous function start ______
03:11:DEBUG:>> 10524 | 0 | CServer::OnTick | +0
03:11:DEBUG:>> 10524 | 1 | CServer::OnConsoleCmd | +0
03:11:DEBUG:>> 10524 | 2 | CServer::r_Verb | +0
03:11:DEBUG:>> 10524 | 3 | CScriptObj::r_Verb | +0
03:11:DEBUG:>> 10524 | 4 | CChar::r_Verb | +0
03:11:DEBUG:>> 10524 | 5 | CObjBase::r_Verb | +0
03:11:DEBUG:>> 10524 | 6 | CScriptObj::r_Call | +0
03:11:DEBUG:>> 10524 | 7 | CScriptObj::OnTriggerRun | +0
03:11:DEBUG:>> 10524 | 8 | CScriptObj::OnTriggerForLoop | +0
03:11:DEBUG:>> 10524 | 9 | CScriptObj::OnTriggerRun | +1016
03:11:DEBUG:>> 10524 | 10 | CScriptObj::ParseText | +0 <-- exception catch point (below is guessed and could be incorrect!)
03:11:DEBUG:>> 10524 | 11 | CChar::r_WriteVal | +0
03:11:DEBUG:>> 10524 | 12 | CObjBase::r_WriteVal | +0
03:11:DEBUG:>> 10524 | 13 | CVarDefMap::GetKey | +0
03:11:DEBUG:response ' a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
-- crash --
and using loop 500, it will start with the same error above but at some point it will turn into "Exception adding debug message on the exception." roflmao (and will crash too)
Code:
02:45:DEBUG:__ thread (5404) __ | # | _____ function _____________ | ticks passed from previous function start ______
02:45:DEBUG:>> 5404 | 0 | CServer::OnTick | +0
02:45:DEBUG:>> 5404 | 1 | CServer::OnConsoleCmd | +0
02:45:DEBUG:>> 5404 | 2 | CServer::r_Verb | +0
02:45:DEBUG:>> 5404 | 3 | CScriptObj::r_Verb | +0
02:45:DEBUG:>> 5404 | 4 | CChar::r_Verb | +0
02:45:DEBUG:>> 5404 | 5 | CObjBase::r_Verb | +0
02:45:DEBUG:>> 5404 | 6 | CScriptObj::r_Call | +0
02:45:DEBUG:>> 5404 | 7 | CScriptObj::OnTriggerRun | +0
02:45:DEBUG:>> 5404 | 8 | CScriptObj::OnTriggerForLoop | +0
02:45:DEBUG:>> 5404 | 9 | CScriptObj::OnTriggerRun | +5078
02:45:DEBUG:>> 5404 | 10 | CChar::r_Verb | +31
02:45:DEBUG:>> 5404 | 11 | CObjBase::r_Verb | +0 <-- exception catch point (below is guessed and could be incorrect!)
02:45:DEBUG:>> 5404 | 12 | CVarDefMap::Empty | +0
02:45:ERROR:(test.scp,4)Exception adding debug message on the exception.
...
02:45:DEBUG:__ thread (5404) __ | # | _____ function _____________ | ticks passed from previous function start ______
02:45:DEBUG:>> 5404 | 0 | CServer::OnTick | +0
02:45:DEBUG:>> 5404 | 1 | CServer::OnConsoleCmd | +0
02:45:DEBUG:>> 5404 | 2 | CServer::r_Verb | +0
02:45:DEBUG:>> 5404 | 3 | CScriptObj::r_Verb | +0
02:45:DEBUG:>> 5404 | 4 | CChar::r_Verb | +0
02:45:DEBUG:>> 5404 | 5 | CObjBase::r_Verb | +0
02:45:DEBUG:>> 5404 | 6 | CScriptObj::r_Call | +0
02:45:DEBUG:>> 5404 | 7 | CScriptObj::OnTriggerRun | +0
02:45:DEBUG:>> 5404 | 8 | CScriptObj::OnTriggerForLoop | +0
02:45:DEBUG:>> 5404 | 9 | CScriptObj::OnTriggerRun | +5141
02:45:DEBUG:>> 5404 | 10 | CChar::r_Verb | +31
02:45:DEBUG:>> 5404 | 11 | CObjBase::r_Verb | +0 <-- exception catch point (below is guessed and could be incorrect!)
02:45:DEBUG:>> 5404 | 12 | CVarDefMap::Empty | +0
02:45:ERROR:(test.scp,4)Exception adding debug message on the exception.
02:45:(test.scp,6)LENGTH: 65533 / TAG: a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
-- crash --
probably the crash occour when the tag length is > 4093
I tested using a similar function and it will crash the server too
Code:
[FUNCTION lol2]
TAG.A=
FOR 10000
TAG.A .= "a"
ENDFOR
SERV.LOG LENGTH: <eval STRLEN(<TAG.A>)> / TAG: <TAG.A>
if I got some luck, sometimes the console will show the log "LENGTH: 10000 / TAG: aaaaaa..." and crash, but most of times it will crash without any error