Fix: check malloc return value