From 1ba7e3811be65723b76cb8f395ba47665e67d88b Mon Sep 17 00:00:00 2001 From: hiro Date: Thu, 26 Nov 2015 08:41:55 +0000 Subject: fix for sigbus on ARM caused by unaligned access (#242). git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@3486 ee746299-78ed-0310-b773-934348b2243d --- libsylph/procmsg.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'libsylph') diff --git a/libsylph/procmsg.c b/libsylph/procmsg.c index fe65395a..28d16f32 100644 --- a/libsylph/procmsg.c +++ b/libsylph/procmsg.c @@ -164,7 +164,7 @@ static gint procmsg_read_cache_data_str_mem(const gchar **p, const gchar *endp, if (endp - *p < sizeof(len)) return -1; - len = *(const guint32 *)(*p); + memcpy(&len, *p, sizeof(len)); *p += sizeof(len); if (len > G_MAXINT || len > endp - *p) return -1; @@ -197,7 +197,9 @@ static gint procmsg_read_cache_data_str_mem(const gchar **p, const gchar *endp, g_mapped_file_free(mapfile); \ return NULL; \ } else { \ - n = *(const guint32 *)p; \ + guint32 idata; \ + memcpy(&idata, p, sizeof(idata)); \ + n = idata; \ p += sizeof(guint32); \ } \ } -- cgit v1.2.3