in src/fc_section_argc_argv.c [18:93]
int FABRIC_CONFIGURATION_SECTION_to_ARGC_ARGV(const FABRIC_CONFIGURATION_SECTION* fabric_configuration_section, int* argc, char*** argv)
{
int result;
if (
(fabric_configuration_section == NULL) ||
(argc == NULL) ||
(argv == NULL)
)
{
LogError("invalid argument const FABRIC_CONFIGURATION_SECTION* fabric_configuration_section=%p, int* argc=%p, char*** argv=%p",
fabric_configuration_section, argc, argv);
result = MU_FAILURE;
}
else
{
*argv = malloc_2(2, sizeof(char*)); /*2 because --sectionName + "name", will realloc'd for every parameter*/
if (*argv == NULL)
{
LogError("failure in 2 + fabric_configuration_section->Parameters->Count");
result = MU_FAILURE;
}
else
{
*argc = 2;
(*argv)[0] = sprintf_char(SECTION_NAME_DEFINE);
if ((*argv)[0] == NULL)
{
LogError("failure in sprintf_char(SECTION_NAME_DEFINE=%s)", SECTION_NAME_DEFINE);
result = MU_FAILURE;
}
else
{
(*argv)[1] = sprintf_char("%ls", fabric_configuration_section->Name);
if ((*argv)[1] == NULL)
{
LogError("failure in sprintf_char(\"%%ls\", fabric_configuration_section->Name=%ls);", fabric_configuration_section->Name);
result = MU_FAILURE;
}
else
{
int g_argc;
char** g_argv;
if (FABRIC_CONFIGURATION_PARAMETER_LIST_to_ARGC_ARGV(fabric_configuration_section->Parameters, &g_argc, &g_argv) != 0)
{
LogError("failure in FABRIC_CONFIGURATION_PARAMETER_LIST_to_ARGC_ARGV");
result = MU_FAILURE;
}
else
{
if (ARGC_ARGV_concat(argc, argv, g_argc, g_argv) != 0)
{
ARGC_ARGV_free(g_argc, g_argv);
LogError("failure in ARGC_ARGV_concat");
result = MU_FAILURE;
}
else
{
ARGC_ARGV_free(g_argc, g_argv);
result = 0;
goto allok;
}
}
free(argv[1]);
}
free(argv[0]);
}
free(*argv);
}
}
allok:;
return result;
}