~ chicken-core (chicken-5) 196dbaeb929e93b6342ad6a4be80a0717200882d
commit 196dbaeb929e93b6342ad6a4be80a0717200882d Author: felix <felix@call-with-current-continuation.org> AuthorDate: Mon Feb 14 19:08:53 2011 +0100 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Mon Feb 14 19:09:31 2011 +0100 fixed stupid bug in runtime-option argument checking (thanks to Sandro) diff --git a/manual/Acknowledgements b/manual/Acknowledgements index 0e947ce0..f3c309f3 100644 --- a/manual/Acknowledgements +++ b/manual/Acknowledgements @@ -36,8 +36,8 @@ Nicolas Pelletier, Derrell Piper, Carlos Pita, Robin Lee Powell, Alan Post, "Pupeno", Davide Puricelli, "presto", Doug Quale, Imran Rafique, Eric Raible, Ivan Raikov, Joel Reymont, Chris Roberts, Eric Rochester, Paul Romanchenko, Andreas Rottman, David Rush, Lars Rustemeier, Daniel -Sadilek, Oskar Schirmer, Burton Samograd, Reed Sheridan, Ronald -Schroeder, Spencer Schumann, Ivan Shcheklein, Alex Shinn, Ivan +Sadilek, "Sandro", Oskar Schirmer, Burton Samograd, Reed Sheridan, +Ronald Schroeder, Spencer Schumann, Ivan Shcheklein, Alex Shinn, Ivan Shmakov, "Shmul", Tony Sidaway, Jeffrey B. Siegal, Andrey Sidorenko, Michele Simionato, Iruata Souza, Volker Stolz, Jon Strait, Dorai Sitaram, Robert Skeels, Jason Songhurst, Clifford Stein, David diff --git a/runtime.c b/runtime.c index 68a24a30..4585d726 100644 --- a/runtime.c +++ b/runtime.c @@ -1262,7 +1262,7 @@ void CHICKEN_parse_command_line(int argc, char *argv[], C_word *heap, C_word *st C_word arg_val(C_char *arg) { int len; - char *end; + C_char *end; long val, mul = 1; if (arg == NULL) panic(C_text("illegal runtime-option argument")); @@ -1287,7 +1287,8 @@ C_word arg_val(C_char *arg) val = strtol(arg, &end, 10); - if(*end != '\0') return 0; + if((mul != 1 ? end[ 1 ] != '\0' : end[ 0 ] != '\0')) + panic(C_text("invalid runtime-option argument suffix")); return val * mul; }Trap