Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Further fix thinko in plpgsql memory leak fix.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 28 Dec 2020 16:55:23 +0000 (11:55 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 28 Dec 2020 16:55:41 +0000 (11:55 -0500)
There's a second call of get_eval_mcontext() that should also be
get_stmt_mcontext().  This is actually dead code, since no
interesting allocations happen before switching back to the
original context, but we should keep it in sync with the other
call to forestall possible future bugs.

Discussion: https://postgr.es/m/f075f7be-c654-9aa8-3ffc-e9214622f02a@enterprisedb.com

src/pl/plpgsql/src/pl_exec.c

index b876caaee20d743c55d0c8842c2c3e55690e6b97..19da13678aeabf3cd2817cba14768fe877593839 100644 (file)
@@ -2239,7 +2239,7 @@ exec_stmt_call(PLpgSQL_execstate *estate, PLpgSQL_stmt_call *stmt)
            row->varnos = (int *) palloc(sizeof(int) * list_length(funcargs));
 
            if (!local_plan)
-               MemoryContextSwitchTo(get_eval_mcontext(estate));
+               MemoryContextSwitchTo(get_stmt_mcontext(estate));
 
            /*
             * Examine procedure's argument list.  Each output arg position