mirror of
https://github.com/zebrajr/postgres.git
synced 2026-01-15 12:15:21 +00:00
Fix a strict aliasing violation
This one is almost a textbook example of an aliasing violation, and it is straightforward to fix, so clean it up. (The warning only shows up if you remove the -fno-strict-aliasing option.) Also, move the code after the error checking. Doesn't make a difference technically, but it seems strange to do actions before errors are checked. Reported-by: Tatsuo Ishii <ishii@postgresql.org> Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://www.postgresql.org/message-id/flat/20240724.155525.366150353176322967.ishii%40postgresql.org
This commit is contained in:
@@ -789,14 +789,6 @@ StartupReplicationOrigin(void)
|
||||
|
||||
readBytes = read(fd, &disk_state, sizeof(disk_state));
|
||||
|
||||
/* no further data */
|
||||
if (readBytes == sizeof(crc))
|
||||
{
|
||||
/* not pretty, but simple ... */
|
||||
file_crc = *(pg_crc32c *) &disk_state;
|
||||
break;
|
||||
}
|
||||
|
||||
if (readBytes < 0)
|
||||
{
|
||||
ereport(PANIC,
|
||||
@@ -805,6 +797,13 @@ StartupReplicationOrigin(void)
|
||||
path)));
|
||||
}
|
||||
|
||||
/* no further data */
|
||||
if (readBytes == sizeof(crc))
|
||||
{
|
||||
memcpy(&file_crc, &disk_state, sizeof(file_crc));
|
||||
break;
|
||||
}
|
||||
|
||||
if (readBytes != sizeof(disk_state))
|
||||
{
|
||||
ereport(PANIC,
|
||||
|
||||
Reference in New Issue
Block a user