If a command has aliases (e.g. edit and sedit), register_command allocates a new struct command for the alias. As struct command has a alignment of 64 specified on __x86_64__, this new allocation needs to observe the alignment lest unaligned access could occur. I don't think it's likely that GCC would generate SIMD code here that expects a 64 byte alignment, but heed UBSan's advice and use xmemalign with the appropriate alignment. Fixes: 8c14b97758 ("svn_rev_477") Signed-off-by: Ahmad Fatoum <ahmad@xxxxxx> --- I am not sure about this, because I don't understand why there was a 64 bit alignment in the x86_64 linker script in the first place. The fix is trivial though, so even if it's only a theoretical, lets have it? --- common/command.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/command.c b/common/command.c index d9cc4a6d4887..09655e9e78d5 100644 --- a/common/command.c +++ b/common/command.c @@ -106,7 +106,7 @@ int register_command(struct command *cmd) if (cmd->aliases) { const char * const *aliases = cmd->aliases; while(*aliases) { - struct command *c = xzalloc(sizeof(struct command)); + struct command *c = xmemalign(__alignof__(*c), sizeof *c); memcpy(c, cmd, sizeof(struct command)); -- 2.20.1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox