+-- On Wed, 12 Oct 2016, Peter Maydell wrote --+
| > -            while (gtb->compare < update.new) {
| > +            if (gtb->compare < update.new) {
| >
| > +                    inc = update.new - gtb->compare - 1;
| 
| Can you explain why the '- 1' here ?

  I think I did that because while was running till gtb->compare < update.new.
To contain gtb->compare under update.new.

| Something still doesn't look right here. Consider the case where
| update.new is only just bigger than gtb->compare (actually the
| usual case, I think). In this case 'update.new - gtb->compare - 1'
| is smaller than gtb->inc and so the QEMU_ALIGN_DOWN will produce
| an inc value of 0. That would be wrong, because we should definitely
| have done an auto-increment.

   Yes, but in those cases 'gtb->compare += inc' would exceed update.new. Is 
that okay ?

Thank you.
--
Prasad J Pandit / Red Hat Product Security Team
47AF CE69 3A90 54AA 9045 1053 DD13 3D32 FE5B 041F

Reply via email to