]> granicus.if.org Git - postgis/commitdiff
#3847, coverity fixes in topology and address standardizer
authorPaul Ramsey <pramsey@cleverelephant.ca>
Thu, 14 Sep 2017 13:56:57 +0000 (13:56 +0000)
committerPaul Ramsey <pramsey@cleverelephant.ca>
Thu, 14 Sep 2017 13:56:57 +0000 (13:56 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@15723 b70326c6-7e19-0410-871a-916f4a2858ee

extensions/address_standardizer/gamma.c
topology/postgis_topology.c

index 66e26dd8ee2f3223d394edd87528ae9f151bd4b9..dcb16f7d0741f0cb36fbe5242bf38c5212bc5305 100644 (file)
@@ -152,6 +152,18 @@ RULES *rules_init( ERR_PARAM *err_p ) {
     if ( !initialize_link( err_p ,
                            o_l ,
                            EPSILON ) ) {
+
+       /* Cleanup allocated resources */
+       FREE_AND_NULL(o_l);
+       FREE_AND_NULL(k_s);
+       FREE_AND_NULL(r_p);
+
+       PAGC_DESTROY_2D_ARRAY(rules -> Trie,NODE,MAXINSYM);
+       rules -> Trie = NULL;
+
+       rules_free(rules);
+       FREE_AND_NULL(rules);
+
        return NULL ;
     }
 
index a1481c0511b5fb27691fc2cbdde4c3da5173c339..5ec7cfab3e91cd7d1bec393ac1989c01c61d68be 100644 (file)
@@ -170,21 +170,19 @@ cb_loadTopologyByName(const LWT_BE_DATA* be, const char *name)
   static SPIPlanPtr plan = NULL;
 
   // prepare
-  if ( ! plan ) {
-    sql = "SELECT id,srid,precision,null::geometry"
-                          " FROM topology.topology "
-                          "WHERE name = $1::varchar";
-    argtypes[0] = CSTRINGOID;
-    plan = SPI_prepare(sql, 1, argtypes);
-    if ( ! plan )
-    {
-      cberror(be, "unexpected return (%d) from query preparation: %s",
-              SPI_result, sql);
-      return NULL;
-    }
-    SPI_keepplan(plan);
-    // SPI_freeplan to free, eventually
+  sql = "SELECT id,srid,precision,null::geometry"
+                        " FROM topology.topology "
+                        "WHERE name = $1::varchar";
+  argtypes[0] = CSTRINGOID;
+  plan = SPI_prepare(sql, 1, argtypes);
+  if ( ! plan )
+  {
+    cberror(be, "unexpected return (%d) from query preparation: %s",
+            SPI_result, sql);
+    return NULL;
   }
+  SPI_keepplan(plan);
+  // SPI_freeplan to free, eventually
 
   // execute
   values[0] = CStringGetDatum(name);