rem: buffer = malloc(PATH_MAX + 1);
add: buffer = (char *)malloc(PATH_MAX + 1);
context: pnp_notify_dynamic_consumers(device_node_info *node){	int i;	char *buffer;	status_t res;	bool has_normal_driver = false;	TRACE(("pnp_notify_dynamic_consumers()\n"));	buffer = malloc(PATH_MAX + 1);	if (buffer == NULL)		return B_NO_MEMORY;	//pnp_load_boot_links();	// first, append nothing, then "/0", "/1" etc.	for (i = -1; ; ++i) {		char *consumer;		strcpy(buffer, PNP_DRIVER_DYNAMIC_CONSUMER);		if (i >= 0)			sprintf(buffer + strlen( buffer ), "/%d", i);		// if no more dynamic consumers, cancel loop silently		if (pnp_get_attr_string(node, buffer, &consumer, false) != B_OK) {			// starting with .../0 is OK, so ignore error if i=-1			if (i == -1)				continue;			else				break;		}		TRACE(("Consumer pattern %d: %s\n", i, consumer));		res = notify_dynamic_consumer(node, consumer, &has_normal_driver);		free(consumer);		if (res != B_OK) {			// this is only reached if a serious error occured,			// see notify_dynamic_consumer()			goto err;		}	}	free(buffer);	//pnp_unload_boot_links();	return B_OK;err:	free(buffer);	//pnp_unload_boot_links();	return res;}