mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-11-08 12:31:21 +01:00
IMPORT: cebtree: Replace offset calculation with offsetof to avoid UB
This is the same as the equivalent fix in ebtree: The C standard specifies that it's undefined behavior to dereference NULL (even if you use & right after). The hand-rolled offsetof idiom &(((s*)NULL)->f) is thus technically undefined. This clutters the output of UBSan and is simple to fix: just use the real offsetof when it's available. This is cebtree commit 2d08958858c2b8a1da880061aed941324e20e748.
This commit is contained in:
parent
4c3351fd63
commit
d5ca3bb3b4
@ -555,7 +555,7 @@ struct ceb_node *_ceb_descend(struct ceb_root **root,
|
||||
/* the parent will be the (possibly virtual) node so that
|
||||
* &lparent->l == root, i.e. container_of(root, struct ceb_node, b[0]).
|
||||
*/
|
||||
lparent = (struct ceb_node *)((char *)root - (long)&((struct ceb_node *)0)->b[0]);
|
||||
lparent = (struct ceb_node *)((char *)root - offsetof(struct ceb_node, b));
|
||||
gparent = lparent;
|
||||
if (ret_nparent)
|
||||
*ret_nparent = NULL;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user