There's a couple of issues with these checks:

* It looks like they should check that `source_start + length < source_length`
* Ditto for `dest_start + length < dest_length`
* Include overflow checks
* `dest_length - dest_start` can underflow, i.e. wrap around to something big.