4月12日,瀚高软件数据库内核研发工程师邵大明提交的PosegreSQL9.6.2版本内核代码Bug的发现及修复,被PG国际社区接受,Bug号“14615”。

Bug发现:
在PostgerSQL 9.6.2版本中,在数据库初始化共享内存时调用ReplicationOriginShmemInit函数中,内存访问越界。
代码修改:
diff --git a/src/backend/replication/logical/origin.c b/src/backend/replication/logical/origin.c
index 5eaf863e02..a8f5b2daf8 100644
--- a/src/backend/replication/logical/origin.c
+++ b/src/backend/replication/logical/origin.c
@@ -470,11 +470,11 @@ ReplicationOriginShmemInit(void)
if (!found)
{
int i;
+
+ MemSet(replication_states_ctl, 0, ReplicationOriginShmemSize());
replication_states_ctl->tranche_id = LWTRANCHE_REPLICATION_ORIGIN;
- MemSet(replication_states, 0, ReplicationOriginShmemSize());
-
for (i = 0; i < max_replication_slots; i++)
LWLockInitialize(&replication_states[i].lock,
replication_states_ctl->tranche_id);
本次Bug的提交,是瀚高软件首次对PG内核代码Bug的发现及修复,代表瀚高软件内核研发能力的提升,是瀚高在社区深度贡献的体现。日后,瀚高软件将不断提升自身实力,持续向社区做出贡献。