aboutsummaryrefslogtreecommitdiffstats
path: root/fsa/src/apps
diff options
context:
space:
mode:
Diffstat (limited to 'fsa/src/apps')
-rw-r--r--fsa/src/apps/fsadump/fsadump.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/fsa/src/apps/fsadump/fsadump.cpp b/fsa/src/apps/fsadump/fsadump.cpp
index a32cce4ed7d..398324316ec 100644
--- a/fsa/src/apps/fsadump/fsadump.cpp
+++ b/fsa/src/apps/fsadump/fsadump.cpp
@@ -62,6 +62,20 @@ void version()
std::cout << std::endl;
}
+
+namespace {
+
+template <typename T>
+T
+read_unaligned(const void* data)
+{
+ T value;
+ memcpy(&value, data, sizeof(T));
+ return value;
+}
+
+}
+
int main(int argc, char** argv)
{
FSA_Input_Format format = OUTPUT_UNDEF;
@@ -154,11 +168,11 @@ int main(int argc, char** argv)
break;
case 2:
case 3:
- num_meta = *((const uint16_t*)(const void *)it->data());
+ num_meta = read_unaligned<uint16_t>(it->data());
break;
case 4:
default:
- num_meta = *((const uint32_t*)(const void *)it->data());
+ num_meta = read_unaligned<uint32_t>(it->data());
break;
}
std::cout << it->str() << '\t' << num_meta << '\n';