@@ -3321,7 +3321,7 @@ CleanupBackgroundWorker(int pid,
3321
3321
*/
3322
3322
if (rw -> rw_backend -> bgworker_notify )
3323
3323
BackgroundWorkerStopNotifications (rw -> rw_pid );
3324
- free (rw -> rw_backend );
3324
+ pfree (rw -> rw_backend );
3325
3325
rw -> rw_backend = NULL ;
3326
3326
rw -> rw_pid = 0 ;
3327
3327
rw -> rw_child_slot = 0 ;
@@ -3414,7 +3414,7 @@ CleanupBackend(int pid,
3414
3414
BackgroundWorkerStopNotifications (bp -> pid );
3415
3415
}
3416
3416
dlist_delete (iter .cur );
3417
- free (bp );
3417
+ pfree (bp );
3418
3418
break ;
3419
3419
}
3420
3420
}
@@ -3470,7 +3470,7 @@ HandleChildCrash(int pid, int exitstatus, const char *procname)
3470
3470
#ifdef EXEC_BACKEND
3471
3471
ShmemBackendArrayRemove (rw -> rw_backend );
3472
3472
#endif
3473
- free (rw -> rw_backend );
3473
+ pfree (rw -> rw_backend );
3474
3474
rw -> rw_backend = NULL ;
3475
3475
rw -> rw_pid = 0 ;
3476
3476
rw -> rw_child_slot = 0 ;
@@ -3507,7 +3507,7 @@ HandleChildCrash(int pid, int exitstatus, const char *procname)
3507
3507
#endif
3508
3508
}
3509
3509
dlist_delete (iter .cur );
3510
- free (bp );
3510
+ pfree (bp );
3511
3511
/* Keep looping so we can signal remaining backends */
3512
3512
}
3513
3513
else
@@ -4083,7 +4083,7 @@ BackendStartup(Port *port)
4083
4083
* Create backend data structure. Better before the fork() so we can
4084
4084
* handle failure cleanly.
4085
4085
*/
4086
- bn = (Backend * ) malloc (sizeof (Backend ));
4086
+ bn = (Backend * ) palloc_extended (sizeof (Backend ), MCXT_ALLOC_NO_OOM );
4087
4087
if (!bn )
4088
4088
{
4089
4089
ereport (LOG ,
@@ -4099,7 +4099,7 @@ BackendStartup(Port *port)
4099
4099
*/
4100
4100
if (!RandomCancelKey (& MyCancelKey ))
4101
4101
{
4102
- free (bn );
4102
+ pfree (bn );
4103
4103
ereport (LOG ,
4104
4104
(errcode (ERRCODE_INTERNAL_ERROR ),
4105
4105
errmsg ("could not generate random cancel key" )));
@@ -4129,8 +4129,6 @@ BackendStartup(Port *port)
4129
4129
pid = fork_process ();
4130
4130
if (pid == 0 ) /* child */
4131
4131
{
4132
- free (bn );
4133
-
4134
4132
/* Detangle from postmaster */
4135
4133
InitPostmasterChild ();
4136
4134
@@ -4161,7 +4159,7 @@ BackendStartup(Port *port)
4161
4159
4162
4160
if (!bn -> dead_end )
4163
4161
(void ) ReleasePostmasterChildSlot (bn -> child_slot );
4164
- free (bn );
4162
+ pfree (bn );
4165
4163
errno = save_errno ;
4166
4164
ereport (LOG ,
4167
4165
(errmsg ("could not fork new process for connection: %m" )));
@@ -5424,7 +5422,7 @@ StartAutovacuumWorker(void)
5424
5422
return ;
5425
5423
}
5426
5424
5427
- bn = (Backend * ) malloc (sizeof (Backend ));
5425
+ bn = (Backend * ) palloc_extended (sizeof (Backend ), MCXT_ALLOC_NO_OOM );
5428
5426
if (bn )
5429
5427
{
5430
5428
bn -> cancel_key = MyCancelKey ;
@@ -5451,7 +5449,7 @@ StartAutovacuumWorker(void)
5451
5449
* logged by StartAutoVacWorker
5452
5450
*/
5453
5451
(void ) ReleasePostmasterChildSlot (bn -> child_slot );
5454
- free (bn );
5452
+ pfree (bn );
5455
5453
}
5456
5454
else
5457
5455
ereport (LOG ,
@@ -5696,7 +5694,7 @@ do_start_bgworker(RegisteredBgWorker *rw)
5696
5694
/* undo what assign_backendlist_entry did */
5697
5695
ReleasePostmasterChildSlot (rw -> rw_child_slot );
5698
5696
rw -> rw_child_slot = 0 ;
5699
- free (rw -> rw_backend );
5697
+ pfree (rw -> rw_backend );
5700
5698
rw -> rw_backend = NULL ;
5701
5699
/* mark entry as crashed, so we'll try again later */
5702
5700
rw -> rw_crashed_at = GetCurrentTimestamp ();
@@ -5822,7 +5820,7 @@ assign_backendlist_entry(RegisteredBgWorker *rw)
5822
5820
return false;
5823
5821
}
5824
5822
5825
- bn = malloc (sizeof (Backend ));
5823
+ bn = palloc_extended (sizeof (Backend ), MCXT_ALLOC_NO_OOM );
5826
5824
if (bn == NULL )
5827
5825
{
5828
5826
ereport (LOG ,
0 commit comments