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
signature.asc
Description: Digital signature