diff --git a/src/backend/utils/misc/injection_point.c b/src/backend/utils/misc/injection_point.c index bf1a49f7472..ea7e6dba521 100644 --- a/src/backend/utils/misc/injection_point.c +++ b/src/backend/utils/misc/injection_point.c @@ -596,6 +596,7 @@ InjectionPointList(uint32 *num_points) #ifdef USE_INJECTION_POINTS InjectionPointData *result; uint32 max_inuse; + int cur_pos = 0; LWLockAcquire(InjectionPointLock, LW_SHARED); @@ -619,14 +620,16 @@ InjectionPointList(uint32 *num_points) if (generation % 2 == 0) continue; - result[idx].name = pstrdup(entry->name); - result[idx].library = pstrdup(entry->library); - result[idx].function = pstrdup(entry->function); - (*num_points)++; + result[cur_pos].name = pstrdup(entry->name); + result[cur_pos].library = pstrdup(entry->library); + result[cur_pos].function = pstrdup(entry->function); + cur_pos++; } LWLockRelease(InjectionPointLock); + *num_points = cur_pos; + return result; #else