aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/libgnat/a-coorma.adb
diff options
context:
space:
mode:
authorBob Duff <duff@adacore.com>2020-04-10 18:23:15 -0400
committerPierre-Marie de Rodat <derodat@adacore.com>2020-06-17 04:14:11 -0400
commitc602003b6a2552c01d77fd1fdd5f12848743075f (patch)
tree1e7cd76cceb0fb154536471344970a65f91fa59c /gcc/ada/libgnat/a-coorma.adb
parent4ea4df3af88f33686813b7db70fbe3e37b7dfecc (diff)
downloadgcc-c602003b6a2552c01d77fd1fdd5f12848743075f.zip
gcc-c602003b6a2552c01d77fd1fdd5f12848743075f.tar.gz
gcc-c602003b6a2552c01d77fd1fdd5f12848743075f.tar.bz2
[Ada] Ada2020: AI12-0110 Tampering checks are performed first
2020-06-17 Bob Duff <duff@adacore.com> gcc/ada/ * libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb, libgnat/a-cbhase.adb, libgnat/a-cbmutr.adb, libgnat/a-cborma.adb, libgnat/a-cborse.adb, libgnat/a-cdlili.adb, libgnat/a-chtgbk.adb, libgnat/a-chtgke.adb, libgnat/a-cidlli.adb, libgnat/a-cihama.adb, libgnat/a-cihase.adb, libgnat/a-cimutr.adb, libgnat/a-ciorma.adb, libgnat/a-ciorse.adb, libgnat/a-cobove.adb, libgnat/a-cohama.adb, libgnat/a-cohase.adb, libgnat/a-coinve.adb, libgnat/a-comutr.adb, libgnat/a-convec.adb, libgnat/a-coorma.adb, libgnat/a-coorse.adb, libgnat/a-crbtgk.adb, libgnat/a-crbtgo.adb, libgnat/a-rbtgso.adb: Move tampering checks earlier.
Diffstat (limited to 'gcc/ada/libgnat/a-coorma.adb')
-rw-r--r--gcc/ada/libgnat/a-coorma.adb8
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/ada/libgnat/a-coorma.adb b/gcc/ada/libgnat/a-coorma.adb
index ea34877..9bad901 100644
--- a/gcc/ada/libgnat/a-coorma.adb
+++ b/gcc/ada/libgnat/a-coorma.adb
@@ -1349,12 +1349,12 @@ package body Ada.Containers.Ordered_Maps is
Node : constant Node_Access := Key_Ops.Find (Container.Tree, Key);
begin
+ TE_Check (Container.Tree.TC);
+
if Checks and then Node = null then
raise Constraint_Error with "key not in map";
end if;
- TE_Check (Container.Tree.TC);
-
Node.Key := Key;
Node.Element := New_Item;
end Replace;
@@ -1369,6 +1369,8 @@ package body Ada.Containers.Ordered_Maps is
New_Item : Element_Type)
is
begin
+ TE_Check (Container.Tree.TC);
+
if Checks and then Position.Node = null then
raise Constraint_Error with
"Position cursor of Replace_Element equals No_Element";
@@ -1380,8 +1382,6 @@ package body Ada.Containers.Ordered_Maps is
"Position cursor of Replace_Element designates wrong map";
end if;
- TE_Check (Container.Tree.TC);
-
pragma Assert (Vet (Container.Tree, Position.Node),
"Position cursor of Replace_Element is bad");