From 9335adc03aa7b1dd6768ed92db0eb4a796acbe71 Mon Sep 17 00:00:00 2001 From: Greg Taylor Date: Tue, 3 Apr 2007 20:15:54 +0000 Subject: [PATCH] More command sanitizing checks, renamed startup script to startup.sh. --- commands_general.py | 6 +++++- commands_unloggedin.py | 15 +++++++++++++-- evennia.sql | Bin 65536 -> 65536 bytes functions_general.py | 11 +++++++++++ prepenv.sh => startup.sh | 0 5 files changed, 29 insertions(+), 3 deletions(-) rename prepenv.sh => startup.sh (100%) diff --git a/commands_general.py b/commands_general.py index 339b645d81..238dbcffdc 100644 --- a/commands_general.py +++ b/commands_general.py @@ -283,8 +283,12 @@ def cmd_say(cdat): """ Room-based speech command. """ - session_list = session_mgr.get_session_list() session = cdat['session'] + + if not functions_general.cmd_check_num_args(session, cdat['uinput']['splitted'], 1, errortext="Say What?"): + return + + session_list = session_mgr.get_session_list() pobject = session.get_pobject() speech = ' '.join(cdat['uinput']['splitted'][1:]) diff --git a/commands_unloggedin.py b/commands_unloggedin.py index a3fecbecb2..31ac506730 100644 --- a/commands_unloggedin.py +++ b/commands_unloggedin.py @@ -1,5 +1,6 @@ from django.contrib.auth.models import User import functions_db +import functions_general """ Commands that are available from the connect screen. @@ -13,8 +14,8 @@ def cmd_connect(cdat): session = cdat['session'] - if len(cdat['uinput']['splitted']) != 3: - session.msg("Missing arguments!") + # Argument check. + if not functions_general.cmd_check_num_args(session, cdat['uinput']['splitted'], 2): return uemail = cdat['uinput']['splitted'][1] @@ -44,10 +45,20 @@ def cmd_create(cdat): Handle the creation of new accounts. """ session = cdat['session'] + + # Argument check. + if not functions_general.cmd_check_num_args(session, cdat['uinput']['splitted'], 2): + return + server = session.server quote_split = ' '.join(cdat['uinput']['splitted']).split("\"") uname = quote_split[1] lastarg_split = quote_split[2].split() + + if len(lastarg_split) != 2: + session.msg("You must specify an email address, followed by a password!") + return + email = lastarg_split[0] password = lastarg_split[1] diff --git a/evennia.sql b/evennia.sql index e67d8c94a253a982c11152a2eec9ebab8b0f48c1..996055e5b49db3e4ff8487290ce61a4b0a6a8231 100755 GIT binary patch delta 521 zcmZutKWGzS6#w4$u179#wWkSEL~U#fv6y;yxl6u8sTPMW4vwXRlB5?pm@fUP7KW4b za(IiD2G8htut5IM>b`=jMnsOl8iO_X&0DBq5C$I5?Vpd@vJ{^wvR2ie^$I2fZ Ck&fvA delta 1093 zcmZvbPe>F|9LL|EY1b77ky4405*HQ0<^7#`BmI*Obtt-Y$sm}&c~J?aqC>kYh!OX1ch~Rfo%-u6z7Db-5a{{U8jR6Zh0Os6=6L1GVO^=20O%veDVw&AlORi;Pq(Pnz*V3U7 zPL5BF`7}=iQ%OGHzC)SMgb0N6Rloz0xRIcd;@qK*=kq`kB_k7rJ4EOZ;TIVhmTXw^ z0uz!l=VZl7rL=BE0N`Syl1DVGnTEM8CwW4p^1_HXJc$&c0h56eKBF;LQIN1WEeBV; z*;CMhWSkP&L{t1HnMCK0fi$XmES5w?ao%Gj4g%vA^Ds!L5|j`bhBV|Nak%h^;=-Yc zYO<5c#6qbchf47%u|w$u5ZRoF>kwb$72zIr11F+9Od>xao=Z7(c|@JqS3(gdNfLQv z_t%XN6Q@83byUB3mH$e2BzXoTZP4^9<`y9Hj diff --git a/functions_general.py b/functions_general.py index 25d7a2cdaa..d2a8541ab7 100644 --- a/functions_general.py +++ b/functions_general.py @@ -5,6 +5,17 @@ import commands_unloggedin """ General commonly used functions. """ + +def cmd_check_num_args(session, arg_list, min_args, errortext="Missing arguments!"): + """ + Check a player command's splitted argument list to make sure it contains + the minimum allowable number of arguments. + """ + if len(arg_list) < min_args+1: + session.msg(errortext) + return False + return True + def print_errmsg(errormsg): """ Prints/logs an error message. Pipe any errors to be logged through here. diff --git a/prepenv.sh b/startup.sh similarity index 100% rename from prepenv.sh rename to startup.sh