Message ID | 20170830160603.5452-2-david@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, 30 Aug 2017 18:06:00 +0200 David Hildenbrand <david@redhat.com> wrote: > Looks like the "overflowing" range check is wrong. > > |=======b-------a=======| > > addr >= a || addr <= b Huh :) > > Signed-off-by: David Hildenbrand <david@redhat.com> > --- > arch/s390/kvm/guestdbg.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/s390/kvm/guestdbg.c b/arch/s390/kvm/guestdbg.c > index c2e0ddc1356e..bcbd86621d01 100644 > --- a/arch/s390/kvm/guestdbg.c > +++ b/arch/s390/kvm/guestdbg.c > @@ -308,7 +308,7 @@ static inline int in_addr_range(u64 addr, u64 a, u64 b) > return (addr >= a) && (addr <= b); > else > /* "overflowing" interval */ > - return (addr <= a) && (addr >= b); > + return (addr >= a) || (addr <= b); > } > > #define end_of_range(bp_info) (bp_info->addr + bp_info->len - 1) Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> applied thanks. On 08/30/2017 06:06 PM, David Hildenbrand wrote: > Looks like the "overflowing" range check is wrong. > > |=======b-------a=======| > > addr >= a || addr <= b > > Signed-off-by: David Hildenbrand <david@redhat.com> > --- > arch/s390/kvm/guestdbg.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/s390/kvm/guestdbg.c b/arch/s390/kvm/guestdbg.c > index c2e0ddc1356e..bcbd86621d01 100644 > --- a/arch/s390/kvm/guestdbg.c > +++ b/arch/s390/kvm/guestdbg.c > @@ -308,7 +308,7 @@ static inline int in_addr_range(u64 addr, u64 a, u64 b) > return (addr >= a) && (addr <= b); > else > /* "overflowing" interval */ > - return (addr <= a) && (addr >= b); > + return (addr >= a) || (addr <= b); > } > > #define end_of_range(bp_info) (bp_info->addr + bp_info->len - 1) >
diff --git a/arch/s390/kvm/guestdbg.c b/arch/s390/kvm/guestdbg.c index c2e0ddc1356e..bcbd86621d01 100644 --- a/arch/s390/kvm/guestdbg.c +++ b/arch/s390/kvm/guestdbg.c @@ -308,7 +308,7 @@ static inline int in_addr_range(u64 addr, u64 a, u64 b) return (addr >= a) && (addr <= b); else /* "overflowing" interval */ - return (addr <= a) && (addr >= b); + return (addr >= a) || (addr <= b); } #define end_of_range(bp_info) (bp_info->addr + bp_info->len - 1)
Looks like the "overflowing" range check is wrong. |=======b-------a=======| addr >= a || addr <= b Signed-off-by: David Hildenbrand <david@redhat.com> --- arch/s390/kvm/guestdbg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)