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 @@ -752,6 +752,15 @@ pgsp_shmem_startup(void)
752
752
pgver != PGSP_PG_MAJOR_VERSION )
753
753
goto data_error ;
754
754
755
+ /* check if num is out of range */
756
+ if (num < 0 || num > store_size )
757
+ {
758
+ ereport (LOG ,
759
+ (errcode (ERRCODE_INVALID_PARAMETER_VALUE ),
760
+ errmsg ("Invalid number of entries in file: %d" , num )));
761
+ goto data_error ;
762
+ }
763
+
755
764
for (i = 0 ; i < num ; i ++ )
756
765
{
757
766
pgspEntry temp ;
@@ -944,6 +953,10 @@ pgsp_shmem_shutdown(int code, Datum arg)
944
953
/* Unlink query-texts file; it's not needed while shutdown */
945
954
unlink (PGSP_TEXT_FILE );
946
955
956
+ if (pbuffer ){
957
+ free (pbuffer ); // or free(pbuffer)
958
+ pbuffer = NULL ;
959
+ }
947
960
return ;
948
961
949
962
error :
@@ -954,6 +967,10 @@ pgsp_shmem_shutdown(int code, Datum arg)
954
967
if (file )
955
968
FreeFile (file );
956
969
unlink (PGSP_DUMP_FILE ".tmp" );
970
+ if (pbuffer ){
971
+ free (pbuffer ); // or free(pbuffer)
972
+ pbuffer = NULL ;
973
+ }
957
974
}
958
975
959
976
@@ -1726,6 +1743,11 @@ pg_store_plans_internal(FunctionCallInfo fcinfo,
1726
1743
}
1727
1744
1728
1745
LWLockRelease (shared_state -> lock );
1746
+
1747
+ if (pbuffer ){
1748
+ free (pbuffer ); // or free(pbuffer)
1749
+ pbuffer = NULL ;
1750
+ }
1729
1751
}
1730
1752
1731
1753
/* Number of output arguments (columns) for pg_stat_statements_info */
You can’t perform that action at this time.
0 commit comments