tTwo server input validation bugs fixed: 1. No check was present for paying back a negative amount of money 2. Bank or loan shark transactions could be undertaken at any point during the game, in any location - vaccinewars - be a doctor and try to vaccinate the world
 (HTM) git clone git://src.adamsgaard.dk/vaccinewars
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit dd4fb7c859062ad35249c6d74147dd76230acfaa
 (DIR) parent 373191c7c99d8ef1e29a79e1c41a968896e2b584
 (HTM) Author: Ben Webb <ben@salilab.org>
       Date:   Mon, 22 Apr 2002 09:35:17 +0000
       
       Two server input validation bugs fixed:
          1. No check was present for paying back a negative amount of money
          2. Bank or loan shark transactions could be undertaken at any point
             during the game, in any location
       
       
       Diffstat:
         M ChangeLog                           |       3 +++
         M src/serverside.c                    |       6 ++++--
       
       2 files changed, 7 insertions(+), 2 deletions(-)
       ---
 (DIR) diff --git a/ChangeLog b/ChangeLog
       t@@ -1,4 +1,7 @@
        cvs
       +    - Bug fix: the server will only let you pay back loans or deal with the
       +      bank when you are at the correct location, and you can no longer
       +      "pay back" negative amounts of cash to the loan shark
            - Another dumb PPC bug fixed
            - Incorrect LIBS generated by configure script in some circumstances
              (due to a GTK+/Glib bug) - now fixed
 (DIR) diff --git a/src/serverside.c b/src/serverside.c
       t@@ -511,7 +511,8 @@ void HandleServerMessage(gchar *buf, Player *Play)
            break;
          case C_DEPOSIT:
            money = strtoprice(Data);
       -    if (Play->Bank + money >= 0 && Play->Cash - money >= 0) {
       +    if (Play->EventNum == E_BANK && Play->Bank + money >= 0
       +        && Play->Cash - money >= 0) {
              Play->Bank += money;
              Play->Cash -= money;
              SendPlayerData(Play);
       t@@ -519,7 +520,8 @@ void HandleServerMessage(gchar *buf, Player *Play)
            break;
          case C_PAYLOAN:
            money = strtoprice(Data);
       -    if (Play->Debt - money >= 0 && Play->Cash - money >= 0) {
       +    if (Play->EventNum == E_LOANSHARK && money > 0
       +        && Play->Debt - money >= 0 && Play->Cash - money >= 0) {
              Play->Debt -= money;
              Play->Cash -= money;
              SendPlayerData(Play);