CVSROOT:        /cvsroot/wesnoth
Module name:    wesnoth
Branch:         
Changes by:     Guillaume Melquiond <[EMAIL PROTECTED]> 05/04/30 07:56:44

Modified files:
        src            : random.cpp 

Log message:
        Enforce the range of random numbers, in order to avoid some OoS if a 
serialized value is out of range on the target computer.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/wesnoth/wesnoth/src/random.cpp.diff?tr1=1.2&tr2=1.3&r1=text&r2=text

Patches:
Index: wesnoth/src/random.cpp
diff -u wesnoth/src/random.cpp:1.2 wesnoth/src/random.cpp:1.3
--- wesnoth/src/random.cpp:1.2  Sat Apr 23 12:13:10 2005
+++ wesnoth/src/random.cpp      Sat Apr 30 07:56:44 2005
@@ -1,4 +1,4 @@
-/* $Id: random.cpp,v 1.2 2005/04/23 12:13:10 gruikya Exp $ */
+/* $Id: random.cpp,v 1.3 2005/04/30 07:56:44 silene Exp $ */
 /*
    Copyright (C) 2003 by David White <[EMAIL PROTECTED]>
    Copyright (C) 2005 by Yann Dirson <[EMAIL PROTECTED]>
@@ -35,7 +35,7 @@
        if(random == NULL) {
                int res = value;
                if(value < 0) 
-                       res = rand();
+                       res = rand() & 0x7FFFFFFF;
                random_ = &random_->add_child("random");
 
                char buf[100];
@@ -44,7 +44,7 @@
 
                return res;
        } else {
-               const int res = atol((*random)["value"].c_str());
+               const int res = atoi((*random)["value"].c_str());
                random_ = random;
                return res;
        }


Reply via email to