[mapserver-commits] r8807 - branches/branch-5-2/mapserver

svn at osgeo.org svn at osgeo.org
Wed Mar 18 10:10:57 EDT 2009


Author: sdlime
Date: 2009-03-18 10:10:57 -0400 (Wed, 18 Mar 2009)
New Revision: 8807

Modified:
   branches/branch-5-2/mapserver/mapsymbol.c
Log:
Fixed symbol set loader to require the SYMBOLSET token before processing. (related to #2941)

Modified: branches/branch-5-2/mapserver/mapsymbol.c
===================================================================
--- branches/branch-5-2/mapserver/mapsymbol.c	2009-03-18 11:14:16 UTC (rev 8806)
+++ branches/branch-5-2/mapserver/mapsymbol.c	2009-03-18 14:10:57 UTC (rev 8807)
@@ -1,5 +1,5 @@
 /******************************************************************************
- * $Id:$
+ * $Id$
  *
  * Project:  MapServer
  * Purpose:  symbolObj related functions.
@@ -621,7 +621,7 @@
 int msLoadSymbolSet(symbolSetObj *symbolset, mapObj *map)
 {
     int retval = MS_FAILURE;
-    
+
     msAcquireLock( TLOCK_PARSER );
     retval = loadSymbolSet( symbolset, map );
     msReleaseLock( TLOCK_PARSER );
@@ -636,6 +636,9 @@
   int status=1;
   char szPath[MS_MAXPATHLEN], *pszSymbolPath=NULL;
 
+  int foundSymbolSetToken=MS_FALSE;
+  int token;
+
   if(!symbolset) {
     msSetError(MS_SYMERR, "Symbol structure unallocated.", "loadSymbolSet()");
     return(-1);
@@ -662,7 +665,15 @@
   ** Read the symbol file
   */
   for(;;) {
-    switch(msyylex()) {
+
+    token = msyylex();
+
+    if(!foundSymbolSetToken && token != SYMBOLSET) {
+      msSetError(MS_IDENTERR, "First token must be SYMBOLSET, this doesn't look like a symbol file.", "msLoadSymbolSet()");
+      return(-1);
+    }
+
+    switch(token) {
     case(END):
     case(EOF):      
       status = 0;
@@ -678,6 +689,7 @@
           symbolset->numsymbols++;
       break;
     case(SYMBOLSET):
+      foundSymbolSetToken = MS_TRUE;
       break;
     default:
       msSetError(MS_IDENTERR, "Parsing error near (%s):(line %d)", "loadSymbolSet()", msyytext, msyylineno);



More information about the mapserver-commits mailing list