<html>
<head>
<base href="https://bugs.freedesktop.org/" />
</head>
<body><span class="vcard"><a class="email" href="mailto:psychon@znc.in" title="Uli Schlachter <psychon@znc.in>"> <span class="fn">Uli Schlachter</span></a>
</span> changed
<a class="bz_bug_link
bz_status_NEEDINFO "
title="NEEDINFO - SIGBUS in polygon_add_edge on sparc"
href="https://bugs.freedesktop.org/show_bug.cgi?id=90095">bug 90095</a>
<br>
<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>What</th>
<th>Removed</th>
<th>Added</th>
</tr>
<tr>
<td style="text-align:right;">Status</td>
<td>NEW
</td>
<td>NEEDINFO
</td>
</tr></table>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEEDINFO "
title="NEEDINFO - SIGBUS in polygon_add_edge on sparc"
href="https://bugs.freedesktop.org/show_bug.cgi?id=90095#c1">Comment # 1</a>
on <a class="bz_bug_link
bz_status_NEEDINFO "
title="NEEDINFO - SIGBUS in polygon_add_edge on sparc"
href="https://bugs.freedesktop.org/show_bug.cgi?id=90095">bug 90095</a>
from <span class="vcard"><a class="email" href="mailto:psychon@znc.in" title="Uli Schlachter <psychon@znc.in>"> <span class="fn">Uli Schlachter</span></a>
</span></b>
<pre>Could you check if commit 40201f4b1ab52c85922b2b7ae05dd862159a1aa0 fixes your
issue?
commit 40201f4b1ab52c85922b2b7ae05dd862159a1aa0
Author: Uli Schlachter <<a href="mailto:psychon@znc.in">psychon@znc.in</a>>
Date: Fri Dec 5 14:43:26 2014 +0100
tor-scan-converter: Correctly align 64bit types
On 32bit SPARC the scan converter was causing a SIGBUS due to an unaligned
memory access while accessing an int64_t. This memory accessing was to
struct
quorem's rem member.
This crash occurred because the tor-scan-converter contains its own
implementation of a memory pool. This implementation only guarantees an
alignment of sizeof(void *), which is less than what a 64 bit type requires
on
32bit platforms. This 4 byte alignment is guaranteed, because struct
_pool_chunk
(which is the struct that is used for managing free space) contains
elements of
that size and so the size of that struct is a multiple of this size as
well.
This problem was introduced with commit 03c3d4b7c15.
To fix this problem, this commit introduces a int64_t member to struct
_pool_chunk that marks the beginning of the free data space. Thanks to
this, the
compiler ensures proper alignment and sizeof(struct _pool_chunk) becomes a
multiple of 8.
However, previously the end of the struct marked the beginning of the data
and
sizeof() was used for correctly calculating offsets to the data section.
So,
just adding such a member would work, but would also waste some memory. To
avoid
this, this commit also changes the rest of the pool implementation to
accommodate.
Reported-by: Nicolas Setton <<a href="mailto:setton@adacore.com">setton@adacore.com</a>>
Signed-off-by: Uli Schlachter <<a href="mailto:psychon@znc.in">psychon@znc.in</a>>
Reviewed-by: Bryce Harrington <<a href="mailto:bryce@osg.samsung.com">bryce@osg.samsung.com</a>></pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
</ul>
</body>
</html>