From 65e4bfd3aebf2c4a91432d5bf6111586c27fd8b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Tue, 8 Sep 2020 15:25:05 +0200 Subject: [PATCH] [Eva] Builtins string: misaligned pointers are considered invalid. But they are not reduced to properly aligned pointers for now. --- src/plugins/value/domains/cvalue/builtins_string.ml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/plugins/value/domains/cvalue/builtins_string.ml b/src/plugins/value/domains/cvalue/builtins_string.ml index c5d67fdf4cb..b4ac0886249 100644 --- a/src/plugins/value/domains/cvalue/builtins_string.ml +++ b/src/plugins/value/domains/cvalue/builtins_string.ml @@ -339,7 +339,12 @@ let reduce_by_validity ~size cvalue = let loc_bits = Locations.loc_bytes_to_loc_bits cvalue in let loc = Locations.make_loc loc_bits (Int_Base.inject size) in if Locations.(is_valid Read loc) - then loc.Locations.loc, true + then + let is_aligned _base ival = + Ival.is_zero (Ival.scale_rem ~pos:true size ival) + in + let valid = Locations.Location_Bits.for_all is_aligned loc_bits in + loc.Locations.loc, valid else let valid_loc = Locations.(valid_part Read ~bitfield:true loc) in valid_loc.Locations.loc, false -- GitLab