Source: hamlib Version: 3.3-8 Severity: normal Tags: patch User: debian-sp...@lists.debian.org Usertags: sparc64
Hi! The attached patch fixes an unaligned access in dummy_get_level() which resulted in the testsuite crashing on sparc64 [1]. I have opened a pull request upstream as well to address the issue [2], so carrying the patch should hopefully not be necessary in the future. Thanks, Adrian > [1] > https://buildd.debian.org/status/fetch.php?pkg=hamlib&arch=sparc64&ver=3.3-8&stamp=1580780480&raw=0 -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer - glaub...@debian.org `. `' Freie Universitaet Berlin - glaub...@physik.fu-berlin.de `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
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. --- hamlib-3.3.orig/dummy/dummy.c +++ hamlib-3.3/dummy/dummy.c @@ -834,7 +834,7 @@ static int dummy_get_level(RIG *rig, vfo } } - *val = curr->levels[idx]; + memcpy (val, &curr->levels[idx], sizeof(value_t)); rig_debug(RIG_DEBUG_VERBOSE,"%s called: %s\n",__FUNCTION__, rig_strlevel(level));