Silence compiler warnings
authorJoe Conway
Mon, 2 Jan 2017 22:12:28 +0000 (14:12 -0800)
committerJoe Conway
Mon, 2 Jan 2017 22:12:28 +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 59099960a8b27c6f5a5771747e19f4e8d88b38f4..0db5797ffcc8a2f8cfbc844f5179106aee29ffe0 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);