On Tue, Jul 14, 2020 at 04:45:37PM +0100, Andrei Ziureaev wrote: > Prevent undefined behavior when shifting by a number that's bigger than > or equal to the width of the first operand. > > Signed-off-by: Andrei Ziureaev <andrei.ziureaev@xxxxxxx> This one makes sense independent of the rest. Applied. > --- > dtc-parser.y | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/dtc-parser.y b/dtc-parser.y > index 40dcf4f..a0316a3 100644 > --- a/dtc-parser.y > +++ b/dtc-parser.y > @@ -476,8 +476,8 @@ integer_rela: > ; > > integer_shift: > - integer_shift DT_LSHIFT integer_add { $$ = $1 << $3; } > - | integer_shift DT_RSHIFT integer_add { $$ = $1 >> $3; } > + integer_shift DT_LSHIFT integer_add { $$ = ($3 < 64) ? ($1 << $3) : 0; } > + | integer_shift DT_RSHIFT integer_add { $$ = ($3 < 64) ? ($1 >> $3) : 0; } > | integer_add > ; > -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
Attachment:
signature.asc
Description: PGP signature