summaryrefslogtreecommitdiff
path: root/plugins/mms/libmms
diff options
context:
space:
mode:
authorGravatar Alexey Yakovenko <waker@users.sourceforge.net>2013-09-01 20:24:10 +0200
committerGravatar Alexey Yakovenko <waker@users.sourceforge.net>2013-09-01 22:08:06 +0200
commit2d87d0874b915ab4e972a41adb629cd489bee723 (patch)
treea76cc9e0216a5b600598494a652785d41f00ec69 /plugins/mms/libmms
parent2512f5aa7236257f8a0d7d718ece54d16c44b9f5 (diff)
fixed mms crash on unaligned memory access
Diffstat (limited to 'plugins/mms/libmms')
-rw-r--r--plugins/mms/libmms/bswap.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/plugins/mms/libmms/bswap.h b/plugins/mms/libmms/bswap.h
index b9be433d..0761dcf6 100644
--- a/plugins/mms/libmms/bswap.h
+++ b/plugins/mms/libmms/bswap.h
@@ -287,7 +287,7 @@
#define LE_32(val) (GINT32_FROM_LE (*((u_int32_t*)(val))))
#define BE_32(val) (GINT32_FROM_BE (*((u_int32_t*)(val))))
-#define LE_64(val) (GINT64_FROM_LE (*((u_int64_t*)(val))))
-#define BE_64(val) (GINT64_FROM_BE (*((u_int64_t*)(val))))
+#define LE_64(val) ({u_int64_t v; memcpy (&v, (val), sizeof (v)); GINT64_FROM_LE (v);})
+#define BE_64(val) ({u_int64_t v; memcpy (&v, (val), sizeof (v)); GINT64_FROM_BE (v);})
#endif /* BSWAP_H_INCLUDED */