Guard the assertion against executing if the requested expand() results if
a request for 0 bytes of expansion. Change the expand() code to align down
a requested number of bytes if the align up would wrap around.
The problem is that a call to expand() by 0 bytes was made where the 0 bytes
value was the result of an align up of the requested bytes and the align up
caused a wrap around to 0.