From: | bret(dot)shao(at)outlook(dot)com |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | BUG #14615: ReplicationOriginShmemInit Memory access cross-border |
Date: | 2017-04-10 06:26:21 |
Message-ID: | 20170410062621.25948.74646@wrigleys.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
The following bug has been logged on the website:
Bug reference: 14615
Logged by: bret shao
Email address: bret(dot)shao(at)outlook(dot)com
PostgreSQL version: 9.6.2
Operating system: linux
Description:
MemSet(replication_states, 0, ReplicationOriginShmemSize()); in function
ReplicationOriginShmemInit cause cross-border,because that start address of
the share memory allocated is replication_states_ctl, but call MemSet to
initialize this memory start from replication_states which is variable
states's address in struct ReplicationStateCtl.so call MemSet to set 0 with
the total size of this share memory will cross border of this share memory.
Although, this cross-border will not caused the system failure due to share
memory allocation strategy after my analysis. but i still believe we
shouldn't do like this.
Fix suggestion:
change to
MemSet(replication_states_ctl, 0, ReplicationOriginShmemSize()); then move
to the beginning of if statement.
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2017-04-10 06:38:56 | Re: BUG #14615: ReplicationOriginShmemInit Memory access cross-border |
Previous Message | mustafa husny | 2017-04-09 22:05:38 | manage connections |