File tree Expand file tree Collapse file tree 1 file changed +22
-0
lines changed Expand file tree Collapse file tree 1 file changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -738,6 +738,15 @@ pgsp_shmem_startup(void)
738738 pgver != PGSP_PG_MAJOR_VERSION )
739739 goto data_error ;
740740
741+ /* check if num is out of range */
742+ if (num < 0 || num > store_size )
743+ {
744+ ereport (LOG ,
745+ (errcode (ERRCODE_INVALID_PARAMETER_VALUE ),
746+ errmsg ("Invalid number of entries in file: %d" , num )));
747+ goto data_error ;
748+ }
749+
741750 for (i = 0 ; i < num ; i ++ )
742751 {
743752 pgspEntry temp ;
@@ -930,6 +939,10 @@ pgsp_shmem_shutdown(int code, Datum arg)
930939 /* Unlink query-texts file; it's not needed while shutdown */
931940 unlink (PGSP_TEXT_FILE );
932941
942+ if (pbuffer ){
943+ free (pbuffer ); // or free(pbuffer)
944+ pbuffer = NULL ;
945+ }
933946 return ;
934947
935948error :
@@ -940,6 +953,10 @@ pgsp_shmem_shutdown(int code, Datum arg)
940953 if (file )
941954 FreeFile (file );
942955 unlink (PGSP_DUMP_FILE ".tmp" );
956+ if (pbuffer ){
957+ free (pbuffer ); // or free(pbuffer)
958+ pbuffer = NULL ;
959+ }
943960}
944961
945962
@@ -1685,6 +1702,11 @@ pg_store_plans_internal(FunctionCallInfo fcinfo,
16851702
16861703 /* clean up and return the tuplestore */
16871704 tuplestore_donestoring (tupstore );
1705+
1706+ if (pbuffer ){
1707+ free (pbuffer ); // or free(pbuffer)
1708+ pbuffer = NULL ;
1709+ }
16881710}
16891711
16901712/* Number of output arguments (columns) for pg_stat_statements_info */
You can’t perform that action at this time.
0 commit comments