apply: carefully strdup a possibly-NULL name