[mapserver-commits] r11388 - trunk/mapserver

svn at osgeo.org svn at osgeo.org
Wed Mar 30 11:53:10 EDT 2011


Author: aboudreault
Date: 2011-03-30 08:53:10 -0700 (Wed, 30 Mar 2011)
New Revision: 11388

Modified:
   trunk/mapserver/HISTORY.TXT
   trunk/mapserver/mappostgis.c
Log:
Fixed Memory leak in PostGIS driver (#3768)

Modified: trunk/mapserver/HISTORY.TXT
===================================================================
--- trunk/mapserver/HISTORY.TXT	2011-03-30 14:36:07 UTC (rev 11387)
+++ trunk/mapserver/HISTORY.TXT	2011-03-30 15:53:10 UTC (rev 11388)
@@ -15,6 +15,8 @@
 Current Version (SVN trunk):
 ----------------------------
 
+- Fixed Memory leak in PostGIS driver (#3768)
+
 - Fixed PHP/MapScript symbol property setter method
 
 - fix memory leak in bar charts

Modified: trunk/mapserver/mappostgis.c
===================================================================
--- trunk/mapserver/mappostgis.c	2011-03-30 14:36:07 UTC (rev 11387)
+++ trunk/mapserver/mappostgis.c	2011-03-30 15:53:10 UTC (rev 11388)
@@ -380,7 +380,8 @@
     line->point = msSmallMalloc(sizeof(pointObj));
     line->point[0] = wkbReadPoint(w);
     msAddLineDirectly(shape, line);
-      return MS_SUCCESS;
+    free(line);
+    return MS_SUCCESS;
   }
 
 /*
@@ -391,13 +392,16 @@
 {
     char endian;
     int type;
+    lineObj *line;
 
     endian = wkbReadChar(w);
     type = wkbTypeMap(w,wkbReadInt(w));
 
     if( type != WKB_LINESTRING ) return MS_FAILURE;
     
-    msAddLineDirectly(shape, wkbReadLine(w));
+    line = wkbReadLine(w);
+    msAddLineDirectly(shape, line);
+    free(line);
     
     return MS_SUCCESS;
 }
@@ -411,6 +415,7 @@
     char endian;
     int type;
     int i, nrings;
+    lineObj *line;
 
     endian = wkbReadChar(w);
     type = wkbTypeMap(w,wkbReadInt(w));
@@ -421,9 +426,12 @@
     nrings = wkbReadInt(w);
     
     /* Add each ring to the shape */
-    for( i = 0; i < nrings; i++ ) 
-        msAddLineDirectly(shape, wkbReadLine(w));
-    
+    for( i = 0; i < nrings; i++ ) { 
+        line = wkbReadLine(w);
+        msAddLineDirectly(shape, line);
+        free(line);
+    }    
+
     return MS_SUCCESS;
 }
 



More information about the mapserver-commits mailing list