Memory associated with allTokens is never freed due to early return in "case -1" in CPPpragma(yystypepp*) in cpp.c
ISSUE=328
Signed-off-by: Daniel Koch
Author: David Kilzer
git-svn-id: https://angleproject.googlecode.com/svn/trunk@1072 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/common/version.h b/src/common/version.h
index 4e9abab..f15cb0e 100644
--- a/src/common/version.h
+++ b/src/common/version.h
@@ -1,7 +1,7 @@
#define MAJOR_VERSION 1
#define MINOR_VERSION 0
#define BUILD_VERSION 0
-#define BUILD_REVISION 1070
+#define BUILD_REVISION 1072
#define STRINGIFY(x) #x
#define MACRO_STRINGIFY(x) STRINGIFY(x)
diff --git a/src/compiler/preprocessor/cpp.c b/src/compiler/preprocessor/cpp.c
index f45f399..d88f848 100644
--- a/src/compiler/preprocessor/cpp.c
+++ b/src/compiler/preprocessor/cpp.c
@@ -679,7 +679,7 @@
case -1:
// EOF
CPPShInfoLogMsg("#pragma directive must end with a newline");
- return token;
+ goto freeMemoryAndReturnToken;
default:
SrcStrName[0] = token;
SrcStrName[1] = '\0';
@@ -691,6 +691,7 @@
HandlePragma((const char**)allTokens, tokenCount);
+freeMemoryAndReturnToken:
for (i = 0; i < tokenCount; ++i) {
free (allTokens[i]);
}