rem: buffers = malloc(3 * (PATH_MAX + 1));
add: buffers = (char *)malloc(3 * (PATH_MAX + 1));
context: notify_dynamic_consumer(device_node_info *node, const char *pattern,	bool *has_normal_driver){		status_t res;	char *buffers;	char *dir, *filename_pattern;	int num_parts;	TRACE(("notify_dynamic_consumer(pattern=%s, has_normal_driver=%d)\n",		pattern, *has_normal_driver));	// we need three buffers - allocate them at once for simplicity	buffers = malloc(3 * (PATH_MAX + 1));	if (buffers == NULL)		return B_NO_MEMORY;	res = preprocess_consumer_names(pattern, buffers + 2 * (PATH_MAX + 1), 		&dir, &filename_pattern, &num_parts);	if (res < B_OK)		goto err;	if (!*has_normal_driver) {		// find specific/generic consumer				res = find_normal_consumer(node, dir, filename_pattern, num_parts, 			buffers, buffers + PATH_MAX + 1, has_normal_driver);		if (res != B_OK && res != B_NAME_NOT_FOUND)			// only abort if there was a "real" problem; 			// if there is no specific/generic consumer, we don't bother			// (having no driver is not funny but happens)			goto err;	}	// tell universal drivers	strlcpy(buffers, dir, PATH_MAX);	strlcat(buffers, UNIVERSAL_SUBDIR, PATH_MAX);	res = try_drivers(node, buffers, true, buffers + PATH_MAX + 1);	if (res != B_OK && res != B_NAME_NOT_FOUND)		// again, only abort on real problems		goto err;	free(buffers);	TRACE(("done\n"));	return B_OK;err:	free(buffers);	return res;}