From be2623d24d6a48ff2a06769cbee234ca23ebf763 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sat, 1 Mar 2008 19:26:28 +0000 Subject: [PATCH] Fix another place that was assuming that a local variable declared as "struct varlena" would be at least word-aligned. Per buildfarm results from gypsy_moth. I did a little bit of trawling for other instances of this coding pattern, and didn't find any; but if we turn up any more of them I think we'd better revert the "char [4]" patch and find another way of making tuptoaster.c alignment-safe. --- src/backend/storage/large_object/inv_api.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/backend/storage/large_object/inv_api.c b/src/backend/storage/large_object/inv_api.c index 3cc2864ea72..f5d8a8a522c 100644 --- a/src/backend/storage/large_object/inv_api.c +++ b/src/backend/storage/large_object/inv_api.c @@ -24,7 +24,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/storage/large_object/inv_api.c,v 1.127 2008/01/01 19:45:52 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/storage/large_object/inv_api.c,v 1.127.2.1 2008/03/01 19:26:28 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -516,7 +516,8 @@ inv_write(LargeObjectDesc *obj_desc, const char *buf, int nbytes) struct { bytea hdr; - char data[LOBLKSIZE]; + char data[LOBLKSIZE]; /* make struct big enough */ + int32 align_it; /* ensure struct is aligned well enough */ } workbuf; char *workb = VARDATA(&workbuf.hdr); HeapTuple newtup; @@ -707,7 +708,8 @@ inv_truncate(LargeObjectDesc *obj_desc, int len) struct { bytea hdr; - char data[LOBLKSIZE]; + char data[LOBLKSIZE]; /* make struct big enough */ + int32 align_it; /* ensure struct is aligned well enough */ } workbuf; char *workb = VARDATA(&workbuf.hdr); HeapTuple newtup;