seaport: fix memory leak
always return a target or null