From 5805de6e1e71f7b2ada5e528b16460adf4ccff8b Mon Sep 17 00:00:00 2001 From: John Paul Adrian Glaubitz Date: Sat, 8 Feb 2020 10:21:08 -0800 Subject: [PATCH] dummy/dummy.c: Fix unaligned access in dummy_get_level() This fixes an unaligned access in dummy/dummy.c in the function dummy_get_level() which resulted in crashes (Bus Error) on systems with stricter alignment requirements such as SPARC. On x86_64 (and any other architecture with less strict alignment requirements), the compiler automatically optimizes the memcpy() out if necessary such that there are no performance issues. --- rigs/dummy/dummy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rigs/dummy/dummy.c b/rigs/dummy/dummy.c index d3d7b51ac..aaba5d0b1 100644 --- a/rigs/dummy/dummy.c +++ b/rigs/dummy/dummy.c @@ -1123,7 +1123,7 @@ static int dummy_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) break; } - *val = curr->levels[idx]; + memcpy (val, &curr->levels[idx], sizeof(value_t)); rig_debug(RIG_DEBUG_VERBOSE, "%s called: %s\n", __func__, rig_strlevel(level));