flag используется как возвращаемое значение (обратите внимание на последнюю строчку).
В результате, __range_ok вернет 0 тогда и только тогда, когда addr + size <= addr_limit, и при этом не произошло переполнения при сложении.
Работает это так:
0. flag = addr_limit (предполагается, что addr_limit != 0);
1. roksum = addr + size;
2. если в п.1 не произошло переполнения, то roksum = roksum — addr_limit — 1;
3. если в после п.2 rok_sum >= 0, то flag = 0