diff options
author | Treer <treer.git@gmail.com> | 2021-08-17 01:55:35 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-16 17:55:35 +0200 |
commit | 963fbd1572e805ae5205381ba6cb372699d6bd30 (patch) | |
tree | 827146e942740f3aa3d2723cc0a483f899cb2c29 /src/mapgen/mg_schematic.cpp | |
parent | b3b075ea02034306256b486dd45410aa765f035a (diff) | |
download | minetest-963fbd1572e805ae5205381ba6cb372699d6bd30.tar.gz minetest-963fbd1572e805ae5205381ba6cb372699d6bd30.tar.bz2 minetest-963fbd1572e805ae5205381ba6cb372699d6bd30.zip |
Fix access violation in create_schematic() (#11534)
fixes #11533
Schematics saved from y locations greater than 0 would cause an access violation if layer probabilities were specified
Diffstat (limited to 'src/mapgen/mg_schematic.cpp')
-rw-r--r-- | src/mapgen/mg_schematic.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mapgen/mg_schematic.cpp b/src/mapgen/mg_schematic.cpp index 653bad4fe..848a43626 100644 --- a/src/mapgen/mg_schematic.cpp +++ b/src/mapgen/mg_schematic.cpp @@ -598,8 +598,9 @@ void Schematic::applyProbabilities(v3s16 p0, } for (size_t i = 0; i != splist->size(); i++) { - s16 y = (*splist)[i].first - p0.Y; - slice_probs[y] = (*splist)[i].second; + s16 slice = (*splist)[i].first; + if (slice < size.Y) + slice_probs[slice] = (*splist)[i].second; } } |