* Pushes current tail section towards beginning. Length of the current
* valid data area is also decremented. Returns a pointer to the
* tail section before pushing. Returns NULL if the push would lead to
* Pushes current tail section towards beginning. Length of the current
* valid data area is also decremented. Returns a pointer to the
* tail section before pushing. Returns NULL if the push would lead to