Hello PostgreSQL developers,

I got this report in http://bugs.debian.org/612888 about ident failure
on the Debian kFreeBSD kernel on 64 bit. The sizeof(struct cmsgcred)
is 84 on kfrebsd-amd64, there is no reason for padding it  at the end
to 8-byte boundary by kernel. However, the process is blocking on
receiving those extra 4 bytes, which will never come.

Petr Salinger <petr.salin...@seznam.cz> sent a straightforward patch
for this, I turned it into a git-formatted patch for your convenience.

Thanks,

Martin

----- Forwarded message from skull <sk...@spin.it> -----

Date: Fri, 11 Feb 2011 11:40:27 +0100
From: skull <sk...@spin.it>
To: Debian Bug Tracking System <sub...@bugs.debian.org>
Subject: Bug#612888: postgresql: access denied as postgres user after default 
install (kFreeBSD specific)
X-Spam-Status: No, score=0.0 required=4.0 tests=BAYES_50 autolearn=no 
version=3.2.5
Reply-To: skull <sk...@spin.it>, 612...@bugs.debian.org

Package: postgresql
Version: 8.4.7-0squeeze2
Severity: important


After default installation, postgres denies access to postgres user:

root@netmon:~# su - postgres
postgres@netmon:~$ psql template1
psql: FATAL:  Ident authentication failed for user "postgres"

This happens on kFreeBSD flavour only (AFAIK)


-- System Information:
Debian Release: 6.0
  APT prefers squeeze-updates
  APT policy: (500, 'squeeze-updates'), (500, 'stable')
Architecture: kfreebsd-amd64 (x86_64)

Kernel: kFreeBSD 8.1-1-amd64
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages postgresql depends on:
ii  postgresql-8.4           8.4.7-0squeeze2 object-relational SQL database, ve

postgresql recommends no packages.

postgresql suggests no packages.

-- no debconf information



----- End forwarded message -----

-- 
Martin Pitt                        | http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)
From e4630822de32ad24888711ae1699e4fb33086af4 Mon Sep 17 00:00:00 2001
From: Petr Salinger <petr.salin...@seznam.cz>
Date: Sun, 22 May 2011 15:24:49 +0200
Subject: [PATCH] Fix size of struct cmsgcred

The sizeof(struct cmsgcred) is 84 on kfrebsd-amd64, there is no reason for
padding it  at the end to 8-byte boundary by kernel. However, the process is
blocking on receiving those extra 4 bytes, which will never come.

This breaks ident authentication on kFreeBSD 64 bit.

http://bugs.debian.org/612888
---
 src/backend/libpq/auth.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c
index 618f007..865819b 100644
--- a/src/backend/libpq/auth.c
+++ b/src/backend/libpq/auth.c
@@ -1897,7 +1897,7 @@ auth_peer(hbaPort *port)
 	Cred	   *cred;
 
 	/* Compute size without padding */
-	char		cmsgmem[ALIGN(sizeof(struct cmsghdr)) + ALIGN(sizeof(Cred))];	/* for NetBSD */
+	char		cmsgmem[ALIGN(sizeof(struct cmsghdr)) + sizeof(Cred)];	/* for NetBSD */
 
 	/* Point to start of first structure */
 	struct cmsghdr *cmsg = (struct cmsghdr *) cmsgmem;
-- 
1.7.5.1

Attachment: signature.asc
Description: Digital signature

Reply via email to