summaryrefslogtreecommitdiff
path: root/libbcachefs/vstructs.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2023-12-17 15:42:17 -0500
committerKent Overstreet <kent.overstreet@linux.dev>2023-12-18 23:21:21 -0500
commitf76d246fff1c3c5b091fb2b910067d893620dc5e (patch)
treeccc6d2f9b90399ec4758a363d3bcce7f0e002d3e /libbcachefs/vstructs.h
parentb7453196fe82ee70a3ec657847e974450fdac8ad (diff)
Update bcachefs sources to 1a739db0b256 bcachefs; guard against overflow in btree node split
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'libbcachefs/vstructs.h')
-rw-r--r--libbcachefs/vstructs.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/libbcachefs/vstructs.h b/libbcachefs/vstructs.h
index a6561b4b..2ad338e2 100644
--- a/libbcachefs/vstructs.h
+++ b/libbcachefs/vstructs.h
@@ -48,14 +48,14 @@
((void *) ((u64 *) (_s)->_data + __vstruct_u64s(_s)))
#define vstruct_for_each(_s, _i) \
- for (_i = (_s)->start; \
+ for (typeof(&(_s)->start[0]) _i = (_s)->start; \
_i < vstruct_last(_s); \
_i = vstruct_next(_i))
-#define vstruct_for_each_safe(_s, _i, _t) \
- for (_i = (_s)->start; \
- _i < vstruct_last(_s) && (_t = vstruct_next(_i), true); \
- _i = _t)
+#define vstruct_for_each_safe(_s, _i) \
+ for (typeof(&(_s)->start[0]) _next, _i = (_s)->start; \
+ _i < vstruct_last(_s) && (_next = vstruct_next(_i), true); \
+ _i = _next)
#define vstruct_idx(_s, _idx) \
((typeof(&(_s)->start[0])) ((_s)->_data + (_idx)))