projects
/
open-adventure.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
917af2e
)
Prevent tampering with PRNG parameters in save
author
NHOrus
<jy6x2b32pie9@yahoo.com>
Thu, 24 Aug 2017 11:48:02 +0000
(14:48 +0300)
committer
NHOrus
<jy6x2b32pie9@yahoo.com>
Thu, 24 Aug 2017 11:48:02 +0000
(14:48 +0300)
main.c
patch
|
blob
|
history
saveresume.c
patch
|
blob
|
history
diff --git
a/main.c
b/main.c
index 0f245a2d0e6d971279ebaab0e7b6157f7a39106d..0556c01f9da86fa92824bfa31fcf2400f3b39b3d 100644
(file)
--- a/
main.c
+++ b/
main.c
@@
-1175,9
+1175,6
@@
Lookup:
default: // LCOV_EXCL_LINE
BUG(VOCABULARY_TYPE_N_OVER_1000_NOT_BETWEEN_0_AND_3); // LCOV_EXCL_LINE
}
default: // LCOV_EXCL_LINE
BUG(VOCABULARY_TYPE_N_OVER_1000_NOT_BETWEEN_0_AND_3); // LCOV_EXCL_LINE
}
- if (!is_valid(game)) {
- exit(1);
- }
switch (action(command)) {
case GO_TERMINATE:
return true;
switch (action(command)) {
case GO_TERMINATE:
return true;
diff --git
a/saveresume.c
b/saveresume.c
index cf1dd6c287115f7790fe92f0ac25a0542cd5dcee..c5d51816e3b664029fbf09c6eed7872811663798 100644
(file)
--- a/
saveresume.c
+++ b/
saveresume.c
@@
-139,6
+139,12
@@
bool is_valid(struct game_t valgame)
return false;
}
return false;
}
+ /* Prevent RNG substitution. Why we are saving PRNG parameters? */
+
+ if (valgame.lcg_a != game.lcg_a || valgame.lcg_c != game.lcg_c || valgame.lcg_m != game.lcg_m) {
+ return false;
+ }
+
/* Bounds check for locations */
if ( valgame.chloc < -1 || valgame.chloc > NLOCATIONS ||
valgame.chloc2 < -1 || valgame.chloc2 > NLOCATIONS ||
/* Bounds check for locations */
if ( valgame.chloc < -1 || valgame.chloc > NLOCATIONS ||
valgame.chloc2 < -1 || valgame.chloc2 > NLOCATIONS ||