return; else {

で、mallocがNULLを返したときはみてあげないのね ;-)