ilence compiler warnings
authorJoe Conway <mail@joeconway.com>
Mon, 2 Jan 2017 22:12:38 +0000 (14:12 -0800)
committerJoe Conway <mail@joeconway.com>
Mon, 2 Jan 2017 22:12:38 +0000 (14:12 -0800)
In GetCachedPlan(), initialize 'plan' to silence a compiler warning, but
also add an Assert() to make sure we don't ever actually fall through
with 'plan' still being set to NULL, since we are about to dereference
it.

Back-patch back to 9.2.

Author: Stephen Frost
Discussion: https://postgr.es/m/20161129152102.GR13284%40tamriel.snowman.net

src/backend/utils/cache/plancache.c

index 09079e22f274e1eebbcd5f10950719f8247727e7..e8f17d1c8f37ee6853cf002107dcd0ef368d8f7a 100644 (file)
@@ -1093,7 +1093,7 @@ CachedPlan *
 GetCachedPlan(CachedPlanSource *plansource, ParamListInfo boundParams,
              bool useResOwner)
 {
-   CachedPlan *plan;
+   CachedPlan *plan = NULL;
    List       *qlist;
    bool        customplan;
 
@@ -1175,6 +1175,8 @@ GetCachedPlan(CachedPlanSource *plansource, ParamListInfo boundParams,
        }
    }
 
+   Assert(plan != NULL);
+
    /* Flag the plan as in use by caller */
    if (useResOwner)
        ResourceOwnerEnlargePlanCacheRefs(CurrentResourceOwner);