On Fri, May 03, 2024 at 07:44:13AM +0200, Ales Musil wrote: > Partially revert db5a101931c5, this was to avoid warning, however we > shouldn't use pointer to "uint32_t" when the data are potentially > unaligned [0]. Use pointer to "uint8_t" right from the start, this > requires us to use ALIGNED_CAST for the get_unaligned_u32, which is > fine in that case, because the function uses > " __attribute__((__packed__))" struct to access the underlying "uint32_t". > > lib/hash.c:46:22: runtime error: load of misaligned address > 0x507000000065 for type 'const uint32_t *' (aka 'const unsigned int *'), > which requires 4 byte alignment > 0x507000000065: note: pointer points here > 73 62 2e 73 6f 63 6b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > ^ > 00 00 00 00 00 00 00 00 00 > 0 0x6191cb in hash_bytes ovs/lib/hash.c:46:9 > 1 0x69d064 in hash_string ovs/lib/hash.h:404:12 > 2 0x69d064 in hash_name ovs/lib/shash.c:29:12 > 3 0x69d064 in shash_find ovs/lib/shash.c:237:49 > 4 0x69dada in shash_find_data ovs/lib/shash.c:251:31 > 5 0x507987 in add_remote ovs/ovsdb/ovsdb-server.c:1382:15 > 6 0x507987 in parse_options ovs/ovsdb/ovsdb-server.c:2659:13 > 7 0x507987 in main ovs/ovsdb/ovsdb-server.c:751:5 > > SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior lib/hash.c:46:22 > > [0] https://github.com/llvm/llvm-project/issues/90848 > Fixes: db5a101931c5 ("clang: Fix the alignment warning.") > Signed-off-by: Ales Musil <[email protected]> > --- > v3: Do partial revert of db5a101931c5 instead of simple cast.
Acked-by: Simon Horman <[email protected]> _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
