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);




-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to