# HG changeset patch # User rubidium # Date 2008-09-28 13:50:11 # Node ID a65cfa37d4ad3d1063a2e6129e92abe8e385dd33 # Parent bb8f88b66ccb13a5b56a34e3832b84f4047d1914 (svn r14410) -Codechange: one can't inject a negative number of parameters, so enforce this by using a uint. diff --git a/src/strings.cpp b/src/strings.cpp --- a/src/strings.cpp +++ b/src/strings.cpp @@ -191,8 +191,9 @@ void SetDParamStr(uint n, const char *st SetDParam(n, (uint64)(size_t)str); } -void InjectDParam(int amount) +void InjectDParam(uint amount) { + assert((uint)amount < lengthof(_decode_parameters)); memmove(_decode_parameters + amount, _decode_parameters, sizeof(_decode_parameters) - amount * sizeof(uint64)); } diff --git a/src/strings_func.h b/src/strings_func.h --- a/src/strings_func.h +++ b/src/strings_func.h @@ -11,7 +11,7 @@ char *InlineString(char *buf, StringID s char *GetString(char *buffr, StringID string, const char *last); const char *GetStringPtr(StringID string); -void InjectDParam(int amount); +void InjectDParam(uint amount); static inline void SetDParamX(uint64 *s, uint n, uint64 v) {