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]);
 	}