avoid type confusion on interval tree root node when creating snapshot
This commit is contained in:
parent
de3e3f15ee
commit
0c51581329
@ -13673,15 +13673,20 @@ struct libafl_mapinfo {
|
||||
int flags, is_priv;
|
||||
};
|
||||
IntervalTreeNode * libafl_maps_first(IntervalTreeRoot * map_info);
|
||||
IntervalTreeNode * libafl_maps_next(IntervalTreeNode *node, struct libafl_mapinfo* ret);
|
||||
IntervalTreeNode * libafl_maps_next(IntervalTreeNode *node, struct libafl_mapinfo* ret, bool is_root);
|
||||
|
||||
IntervalTreeNode * libafl_maps_first(IntervalTreeRoot * map_info) {
|
||||
return interval_tree_iter_first(map_info, 0, -1);
|
||||
}
|
||||
|
||||
IntervalTreeNode * libafl_maps_next(IntervalTreeNode *node, struct libafl_mapinfo* ret) {
|
||||
IntervalTreeNode * libafl_maps_next(IntervalTreeNode *node, struct libafl_mapinfo* ret, bool is_root) {
|
||||
if (!node || !ret)
|
||||
return NULL;
|
||||
|
||||
if (is_root) {
|
||||
return libafl_maps_next(interval_tree_iter_next(node, 0, -1), ret, false);
|
||||
}
|
||||
|
||||
MapInfo *e = container_of(node, MapInfo, itree);
|
||||
|
||||
if (h2g_valid(e->itree.start)) {
|
||||
@ -13693,7 +13698,7 @@ IntervalTreeNode * libafl_maps_next(IntervalTreeNode *node, struct libafl_mapinf
|
||||
max : (uintptr_t) g2h_untagged(GUEST_ADDR_MAX) + 1;
|
||||
|
||||
if (!page_check_range(h2g(min), max - min, flags)) {
|
||||
return libafl_maps_next(interval_tree_iter_next(node, 0, -1), ret);
|
||||
return libafl_maps_next(interval_tree_iter_next(node, 0, -1), ret, false);
|
||||
}
|
||||
|
||||
int libafl_flags = 0;
|
||||
@ -13710,7 +13715,7 @@ IntervalTreeNode * libafl_maps_next(IntervalTreeNode *node, struct libafl_mapinf
|
||||
|
||||
return interval_tree_iter_next(node, 0, -1);
|
||||
} else {
|
||||
return libafl_maps_next(interval_tree_iter_next(node, 0, -1), ret);
|
||||
return libafl_maps_next(interval_tree_iter_next(node, 0, -1), ret, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user