bugzilla-daemon at mindrot.org
2013-May-13 11:52 UTC
[Bug 2101] New: Unaligned memory access on sparc in UMAC implemetation
https://bugzilla.mindrot.org/show_bug.cgi?id=2101 Bug ID: 2101 Summary: Unaligned memory access on sparc in UMAC implemetation Classification: Unclassified Product: Portable OpenSSH Version: 6.0p1 Hardware: Sparc OS: Solaris Status: NEW Severity: normal Priority: P5 Component: ssh Assignee: unassigned-bugs at mindrot.org Reporter: tomas.kuthan at oracle.com Created attachment 2264 --> https://bugzilla.mindrot.org/attachment.cgi?id=2264&action=edit Bug fix based on Solaris Studio #pragma There is an alignment issue in UMAC implementation, which can cause crash in ssh binary on sparc. Static variable m is defined in mac.c as an array of chars: 168 static u_char m[EVP_MAX_MD_SIZE]; This array is passed to function umac128_final() in ssh/umac.c, and later cast to 64-bit unsigned integer and accessed in pdf_gen_xor(): 264 *((UINT64 *)buf) ^= ((UINT64 *)pc->cache)[ndx]; AFAIK, there is no assurance, that a static char array will be double-word aligned. And indeed, when compiled using Solaris Studio 12.1 cc, the variable address (0x909ac) is only word-aligned: 58588: 37 00 02 42 sethi %hi(0x90800), %i3 5858c: 40 00 18 1a call 5e5f4 <umac_final> 58590: 92 06 e1 ac add %i3, 0x1ac, %o1 ! 909ac <Bbss.bss> This later causes a crash in: pdf_gen_xor+0x68: ldx [0x909ac], %o5 I am proposing two alternatives for the fix (please, see attached): umac_align-pragma.patch - Solaris Studio specific pragma umac_align-union.patch - generic approach - union for alignment -- You are receiving this mail because: You are watching the assignee of the bug.
bugzilla-daemon at mindrot.org
2013-May-13 11:53 UTC
[Bug 2101] Unaligned memory access on sparc in UMAC implemetation
https://bugzilla.mindrot.org/show_bug.cgi?id=2101 --- Comment #1 from Tomas Kuthan <tomas.kuthan at oracle.com> --- Created attachment 2265 --> https://bugzilla.mindrot.org/attachment.cgi?id=2265&action=edit Bug fix based on union -- You are receiving this mail because: You are watching the assignee of the bug.
bugzilla-daemon at mindrot.org
2013-May-13 11:56 UTC
[Bug 2101] Unaligned memory access on sparc in UMAC implemetation
https://bugzilla.mindrot.org/show_bug.cgi?id=2101 Tomas Kuthan <tomas.kuthan at oracle.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #2264|0 |1 is obsolete| | --- Comment #2 from Tomas Kuthan <tomas.kuthan at oracle.com> --- Created attachment 2266 --> https://bugzilla.mindrot.org/attachment.cgi?id=2266&action=edit Bug fix based on Solaris Studio #pragma -- You are receiving this mail because: You are watching the assignee of the bug.
bugzilla-daemon at mindrot.org
2013-May-13 11:59 UTC
[Bug 2101] Unaligned memory access on sparc in UMAC implemetation
https://bugzilla.mindrot.org/show_bug.cgi?id=2101 Tomas Kuthan <tomas.kuthan at oracle.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |tomas.kuthan at oracle.com -- You are receiving this mail because: You are watching the assignee of the bug.
bugzilla-daemon at mindrot.org
2013-May-30 18:58 UTC
[Bug 2101] Unaligned memory access on sparc in UMAC implemetation
https://bugzilla.mindrot.org/show_bug.cgi?id=2101 Darren Tucker <dtucker at zip.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dtucker at zip.com.au --- Comment #3 from Darren Tucker <dtucker at zip.com.au> --- Created attachment 2281 --> https://bugzilla.mindrot.org/attachment.cgi?id=2281&action=edit Bug fix based on malloc Third option: malloc the memory which guarantees that it'll be suitably aligned. -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug.
bugzilla-daemon at mindrot.org
2013-May-30 18:58 UTC
[Bug 2101] Unaligned memory access on sparc in UMAC implemetation
https://bugzilla.mindrot.org/show_bug.cgi?id=2101 Darren Tucker <dtucker at zip.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |2076 -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug.
bugzilla-daemon at mindrot.org
2013-May-30 21:56 UTC
[Bug 2101] Unaligned memory access on sparc in UMAC implemetation
https://bugzilla.mindrot.org/show_bug.cgi?id=2101 Damien Miller <djm at mindrot.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |djm at mindrot.org --- Comment #4 from Damien Miller <djm at mindrot.org> --- My vote goes to the union -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug.
bugzilla-daemon at mindrot.org
2013-Jun-03 00:04 UTC
[Bug 2101] Unaligned memory access on sparc in UMAC implemetation
https://bugzilla.mindrot.org/show_bug.cgi?id=2101 Darren Tucker <dtucker at zip.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #5 from Darren Tucker <dtucker at zip.com.au> --- union variant applied and will be in the 6.3 release. Thanks. -- You are receiving this mail because: You are watching the assignee of the bug. You are watching someone on the CC list of the bug.
bugzilla-daemon at bugzilla.mindrot.org
2016-Aug-02 00:40 UTC
[Bug 2101] Unaligned memory access on sparc in UMAC implemetation
https://bugzilla.mindrot.org/show_bug.cgi?id=2101 Damien Miller <djm at mindrot.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #6 from Damien Miller <djm at mindrot.org> --- Close all resolved bugs after 7.3p1 release -- You are receiving this mail because: You are watching someone on the CC list of the bug. You are watching the assignee of the bug.
Seemingly Similar Threads
- [Bug 1462] New: Unaligned access warnings on IA64 when using umac-64
- [PATCH] fix mac_computer
- [Bug 2636] New: Fix X11 forwarding, when ::1 is not configured
- [Bug 2376] New: Add compile time option to disable Curve25519
- [Bug 2299] New: Disable uid=0 resetting test on Solaris