Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 758d8e46 authored by Phil Carmody's avatar Phil Carmody Committed by Artem Bityutskiy
Browse files

UBI: eliminate possible undefined behaviour



The assignment to pos when rb is finally NULL is undefined behaviour.
Upon seeing that assignment, GCC may assume that rb is not NULL, and
the loop condition ``rb'' may be optimised away.

Signed-off-by: default avatarPhil Carmody <ext-phil.2.carmody@nokia.com>
Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
parent 4a406856
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -579,7 +579,8 @@ void ubi_do_get_volume_info(struct ubi_device *ubi, struct ubi_volume *vol,
	for (rb = rb_first(root),                                            \
	     pos = (rb ? container_of(rb, typeof(*pos), member) : NULL);     \
	     rb;                                                             \
	     rb = rb_next(rb), pos = container_of(rb, typeof(*pos), member))
	     rb = rb_next(rb),                                               \
	     pos = (rb ? container_of(rb, typeof(*pos), member) : NULL))

/**
 * ubi_zalloc_vid_hdr - allocate a volume identifier header object.