+sudo (1.8.2-2) UNRELEASED; urgency=low
+
+ * patch from upstream for SIGBUS on sparc64, closes: #640304
+
+ -- Bdale Garbee <bdale@gag.com> Fri, 16 Sep 2011 09:40:03 -0600
+
sudo (1.8.2-1) unstable; urgency=low
* new upstream version, closes: #637449, #621830
--- /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);
+