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
pull/255/head
Peter Eisentraut 2 weeks ago
parent a87987cafc
commit 2fcc5a7151
  1. 15
      src/backend/replication/logical/origin.c

@ -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,

Loading…
Cancel
Save