+++ /dev/null
-From: Todd C. Miller <Todd.Miller@courtesan.com>
-Subject: Bug#640304: sudo received signal SIGBUS, Bus error
-Date: Fri, 16 Sep 2011 08:48:33 -0400
-
- A bus error is usually an alignment problem. I can see how this
- could happen on 64-bit machines with strict alignment requirements
- (such as sparc64).
-
- The following patch fixes the problem for me. It will be part of
- a sudo 1.8.2p1 release.
-
- - todd
-
-diff -r d161b82321da plugins/sudoers/pwutil.c
---- a/plugins/sudoers/pwutil.c Thu Sep 15 19:56:34 2011 -0400
-+++ b/plugins/sudoers/pwutil.c Fri Sep 16 08:19:18 2011 -0400
-@@ -508,16 +533,16 @@
-
- /*
- * Copy in group list and make pointers relative to space
-- * at the end of the buffer. Note that the gids array must come
-+ * at the end of the buffer. Note that the groups array must come
- * immediately after struct group to guarantee proper alignment.
- */
- grlist = (struct group_list *)cp;
- zero_bytes(grlist, sizeof(struct group_list));
- cp += sizeof(struct group_list);
-+ grlist->groups = (char **)cp;
-+ cp += sizeof(char *) * ngids;
- grlist->gids = (gid_t *)cp;
- cp += sizeof(gid_t) * ngids;
-- grlist->groups = (char **)cp;
-- cp += sizeof(char *) * ngids;
-
- /* Set key and datum. */
- memcpy(cp, user, nsize);
-