worked out with jca and lteo, this fixes this issue (which only occurs when there's an ipv6 connection) for me.
Index: Makefile =================================================================== RCS file: /cvs/ports/databases/postgresql/Makefile,v retrieving revision 1.198 diff -u -p -r1.198 Makefile --- Makefile 6 Feb 2015 09:01:21 -0000 1.198 +++ Makefile 16 Feb 2015 22:37:23 -0000 @@ -10,6 +10,7 @@ COMMENT-plpython=Python procedural langu # in case a dump before / restore after pkg_add -u is required! VERSION= 9.4.1 +REVISION-server= 0 DISTNAME= postgresql-${VERSION} PKGNAME-main= postgresql-client-${VERSION} PKGNAME-server= postgresql-server-${VERSION} Index: patches/patch-src_backend_libpq_hba_c =================================================================== RCS file: patches/patch-src_backend_libpq_hba_c diff -N patches/patch-src_backend_libpq_hba_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_backend_libpq_hba_c 16 Feb 2015 22:37:23 -0000 @@ -0,0 +1,21 @@ +$OpenBSD$ + +Fix crash when connecting over IPv6. "backwards memcpy" logged but it's worse. +Don't copy the whole space for a sockaddr_storage, at this point in the +code the addr/mask are known to be a sockaddr_in. Not using sa_len because +in some cases mask->sa_len is too short (suspect this may be an issue +related to http://marc.info/?l=openbsd-tech&m=138089192205849&w=2). + +--- src/backend/libpq/hba.c.orig Mon Feb 2 20:42:55 2015 ++++ src/backend/libpq/hba.c Mon Feb 16 22:13:26 2015 +@@ -700,8 +700,8 @@ check_ip(SockAddr *raddr, struct sockaddr * addr, stru + struct sockaddr_storage addrcopy, + maskcopy; + +- memcpy(&addrcopy, &addr, sizeof(addrcopy)); +- memcpy(&maskcopy, &mask, sizeof(maskcopy)); ++ memcpy(&addrcopy, addr, sizeof(struct sockaddr_in)); ++ memcpy(&maskcopy, mask, sizeof(struct sockaddr_in)); + pg_promote_v4_to_v6_addr(&addrcopy); + pg_promote_v4_to_v6_mask(&maskcopy); +