add: if (ptr) ptr->used = 1;
context: find_target(const char *name, enum ip6t_tryload tryload){	struct ip6tables_target *ptr;	/* Standard target? */	if (strcmp(name, "") == 0	    || strcmp(name, IP6TC_LABEL_ACCEPT) == 0	    || strcmp(name, IP6TC_LABEL_DROP) == 0	    || strcmp(name, IP6TC_LABEL_QUEUE) == 0	    || strcmp(name, IP6TC_LABEL_RETURN) == 0)		name = "standard";	for (ptr = ip6tables_targets; ptr; ptr = ptr->next) {		if (strcmp(name, ptr->name) == 0)			break;	}	if (!ptr && tryload != DONT_LOAD) {		char path[sizeof(IP6T_LIB_DIR) + sizeof("/libip6t_.so")			 + strlen(name)];		sprintf(path, IP6T_LIB_DIR "/libip6t_%s.so", name);		if (dlopen(path, RTLD_NOW)) {			/* Found library.  If it didn't register itself,			   maybe they specified match as a target. */			ptr = find_target(name, DONT_LOAD);			if (!ptr)				exit_error(PARAMETER_PROBLEM,					   "Couldn't load target `%s'\n",					   name);		} else if (tryload == LOAD_MUST_SUCCEED)			exit_error(PARAMETER_PROBLEM,				   "Couldn't load target `%s'\n", name);	}	return ptr;}