From dc09799bb92c397fbf48f0efe863cd358dc6a1f8 Mon Sep 17 00:00:00 2001 From: "Matthias Huetsch [mhu]" Date: Thu, 25 Nov 2010 14:14:24 +0100 Subject: #i115784# soltools: fix memory errors uncovered by valgrind and other tools. --- soltools/cpp/_eval.c | 13 +++++++------ soltools/cpp/_lex.c | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) (limited to 'soltools') diff --git a/soltools/cpp/_eval.c b/soltools/cpp/_eval.c index a652e488d78f..a6406faed788 100644 --- a/soltools/cpp/_eval.c +++ b/soltools/cpp/_eval.c @@ -1,6 +1,7 @@ +#include "cpp.h" + #include #include -#include "cpp.h" #define NSTAK 32 #define SGN 0 @@ -711,11 +712,11 @@ struct value } else { - static char cvcon[] - = "b\bf\fn\nr\rt\tv\v''\"\"??\\\\"; - size_t j; + static char cvcon[] = "b\bf\fn\nr\rt\tv\v''\"\"??\\\\"; + static size_t cvlen = sizeof(cvcon) - 1; - for (j = 0; j < sizeof(cvcon); j += 2) + size_t j; + for (j = 0; j < cvlen; j += 2) { if (*p == cvcon[j]) { @@ -724,7 +725,7 @@ struct value } } p += 1; - if (j >= sizeof(cvcon)) + if (j >= cvlen) error(WARNING, "Undefined escape in character constant"); } diff --git a/soltools/cpp/_lex.c b/soltools/cpp/_lex.c index 2ff188ff2264..2236fd9db260 100644 --- a/soltools/cpp/_lex.c +++ b/soltools/cpp/_lex.c @@ -262,7 +262,7 @@ void bigfsm[j][fp->state] = (short) nstate; continue; case C_ALPH: - for (j = 0; j <= 256; j++) + for (j = 0; j < 256; j++) #ifdef S390 if( isalpha( j ) || (j == '_') ) #else -- cgit