replacing (addr > e->size) with (addr >= e->size) was correct only in one place, a second replacing is reversed by this commit.
Unified · Split
| @@ -205,7 +205,7 @@ void * FASTCALL __bound_ptr_indir ## dsize (void *p, size_t offset) \ · 204 unmodified lines | |||
| 205 | addr = (size_t)p - e->start; \ | 205 | addr = (size_t)p - e->start; \ |
| 206 | } \ | 206 | } \ |
| 207 | addr += offset + dsize; \ | 207 | addr += offset + dsize; \ |
| 208 | if (addr >= e->size) \ | 208 | if (addr > e->size) \ |
| 209 | return INVALID_POINTER; /* return an invalid pointer */ \ | 209 | return INVALID_POINTER; /* return an invalid pointer */ \ |
| 210 | return p + offset; \ | 210 | return p + offset; \ |
| 211 | } | 211 | } |