blame the caller for the memory allocated by strdup.