aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2001-11-26 22:31:08 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2001-11-26 22:31:08 +0000
commit8e75b36aeb4ec0ba0264b4a64b602f7c09c0b776 (patch)
tree2a8756daaee7d6d4b157201002d57cca376fed9b
parentb7ca9a9403f9cd597899e4ffa06ed6e6afb00c2c (diff)
downloadpostgresql-8e75b36aeb4ec0ba0264b4a64b602f7c09c0b776.tar.gz
postgresql-8e75b36aeb4ec0ba0264b4a64b602f7c09c0b776.zip
Fix unportable, non-spec-compliant use of offsetof() with a nonconstant
member offset.
-rw-r--r--src/backend/postmaster/pgstat.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c
index b77c129ddfd..c01d04753a1 100644
--- a/src/backend/postmaster/pgstat.c
+++ b/src/backend/postmaster/pgstat.c
@@ -16,7 +16,7 @@
*
* Copyright (c) 2001, PostgreSQL Global Development Group
*
- * $Header: /cvsroot/pgsql/src/backend/postmaster/pgstat.c,v 1.14 2001/10/25 05:49:40 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/postmaster/pgstat.c,v 1.15 2001/11/26 22:31:08 tgl Exp $
* ----------
*/
#include "postgres.h"
@@ -464,7 +464,8 @@ pgstat_report_tabstat(void)
for (i = 0; i < pgStatTabstatUsed; i++)
{
n = pgStatTabstatMessages[i]->m_nentries;
- len = offsetof(PgStat_MsgTabstat, m_entry[n]);
+ len = offsetof(PgStat_MsgTabstat, m_entry[0]) +
+ n * sizeof(PgStat_TableEntry);
pgStatTabstatMessages[i]->m_xact_commit = pgStatXactCommit;
pgStatTabstatMessages[i]->m_xact_rollback = pgStatXactRollback;
@@ -573,7 +574,8 @@ pgstat_vacuum_tabstat(void)
*/
if (msg.m_nentries >= PGSTAT_NUM_TABPURGE)
{
- len = offsetof(PgStat_MsgTabpurge, m_tableid[msg.m_nentries]);
+ len = offsetof(PgStat_MsgTabpurge, m_tableid[0])
+ + msg.m_nentries * sizeof(Oid);
pgstat_setheader(&msg.m_hdr, PGSTAT_MTYPE_TABPURGE);
pgstat_send(&msg, len);
@@ -587,7 +589,8 @@ pgstat_vacuum_tabstat(void)
*/
if (msg.m_nentries > 0)
{
- len = offsetof(PgStat_MsgTabpurge, m_tableid[msg.m_nentries]);
+ len = offsetof(PgStat_MsgTabpurge, m_tableid[0])
+ + msg.m_nentries * sizeof(Oid);
pgstat_setheader(&msg.m_hdr, PGSTAT_MTYPE_TABPURGE);
pgstat_send(&msg, len);