Date: Sat, 12 Jul 2003 10:02:31 -0400 From: Craig Rodrigues <rodrigc@crodrigues.org> To: Michael Reifenberger <root@reifenberger.com> Cc: FreeBSD-Current <current@freebsd.org> Subject: Re: -current buildworld failure in libpam Message-ID: <20030712140231.GA42299@crodrigues.org> In-Reply-To: <20030712105817.B22886@nihil.reifenberger.com> References: <20030712105817.B22886@nihil.reifenberger.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--2fHTh5uZTiUOsy+g Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Sat, Jul 12, 2003 at 10:59:44AM +0200, Michael Reifenberger wrote: > ===> lib/libpam/modules/pam_echo > cc -O2 -pipe > -I/usr/src/lib/libpam/modules/pam_echo/../../../../contrib/openpam/include > -I/usr/src/lib/libpam/modules/pam_echo/../../libpam -Wsystem-headers -Werror > -Wall -Wno-format-y2k -W -Wstrict-prototypes -Wmissing-prototypes > -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow > -Wcast-align -Wno-uninitialized -c > /usr/src/lib/libpam/modules/pam_echo/pam_echo.c > /usr/src/lib/libpam/modules/pam_echo/pam_echo.c: In function `_pam_echo': > /usr/src/lib/libpam/modules/pam_echo/pam_echo.c:92: warning: dereferencing > type-punned pointer will break strict-aliasing rules > *** Error code 1 What do you have in your /etc/make.conf? If you change optimization from -O2 to -O, then this problem goes away. I looked into this problem, and created a patch based on a workaround for a similar problem that I saw here: http://sources.redhat.com/ml/libc-hacker/2002-11/msg00048.html Can you try this patch? -- Craig Rodrigues http://crodrigues.org rodrigc@crodrigues.org --2fHTh5uZTiUOsy+g Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="patch1.txt" Index: pam_echo.c =================================================================== RCS file: /home/ncvs/src/lib/libpam/modules/pam_echo/pam_echo.c,v retrieving revision 1.3 diff -u -u -r1.3 pam_echo.c --- pam_echo.c 6 Feb 2003 14:19:50 -0000 1.3 +++ pam_echo.c 12 Jul 2003 13:57:29 -0000 @@ -48,7 +48,11 @@ int argc, const char *argv[]) { char msg[PAM_MAX_MSG_SIZE]; - const char *str, *p, *q; + const char *p, *q; + union { + const char *s; + const void *ptr; + } str; int err, i, item; size_t len; @@ -89,12 +93,12 @@ } if (item == -1) continue; - err = pam_get_item(pamh, item, (const void **)&str); + err = pam_get_item(pamh, item, &str.ptr); if (err != PAM_SUCCESS) return (err); - if (str == NULL) - str = "(null)"; - for (q = str; *q != '\0' && len < sizeof(msg) - 1; ++q) + if (str.s == NULL) + str.s = "(null)"; + for (q = str.s; *q != '\0' && len < sizeof(msg) - 1; ++q) msg[len++] = *q; } } --2fHTh5uZTiUOsy+g--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030712140231.GA42299>