in src/fc_erdl_argc_argv.c [25:79]
int FABRIC_ENDPOINT_RESOURCE_DESCRIPTION_LIST_to_ARGC_ARGV(const FABRIC_ENDPOINT_RESOURCE_DESCRIPTION_LIST* fabric_endpoint_resource_description_list, int* argc, char*** argv)
{
int result;
if (
(fabric_endpoint_resource_description_list == NULL) ||
(argc == NULL) ||
(argv == NULL)
)
{
LogError("invalid argument const const FABRIC_ENDPOINT_RESOURCE_DESCRIPTION_LIST* fabric_endpoint_resource_description_list=%p, int* argc=%p, char*** argv=%p",
fabric_endpoint_resource_description_list, argc, argv);
result = MU_FAILURE;
}
else
{
*argc = 0;
*argv = NULL;
bool wasError = false;
for (ULONG i = 0; !wasError && (i < fabric_endpoint_resource_description_list->Count); i++)
{
int p_argc;
char** p_argv;
if (FABRIC_ENDPOINT_RESOURCE_DESCRIPTION_to_ARGC_ARGV(fabric_endpoint_resource_description_list->Items + i, &p_argc, &p_argv) != 0)
{
LogError("failure in FABRIC_ENDPOINT_RESOURCE_DESCRIPTION_to_ARGC_ARGV");
wasError = true;
}
else
{
if (ARGC_ARGV_concat(argc, argv, p_argc, p_argv) != 0)
{
LogError("failure in ARGC_ARGV_concat");
}
else
{
/*keep going...*/
}
ARGC_ARGV_free(p_argc, p_argv);
}
}
if (wasError)
{
ARGC_ARGV_free(*argc, *argv);
/*clean*/
result = MU_FAILURE;
}
else
{
result = 0;
}
}
return result;
}