int FABRIC_CONFIGURATION_PARAMETER_to_ARGC_ARGV()

in src/fc_parameter_argc_argv.c [16:68]


int FABRIC_CONFIGURATION_PARAMETER_to_ARGC_ARGV(const FABRIC_CONFIGURATION_PARAMETER* fabric_configuration_parameter, int* argc, char*** argv)
{
    int result;
    if (
        (fabric_configuration_parameter == NULL) ||
        (argc == NULL) ||
        (argv == NULL) ||
        (fabric_configuration_parameter->IsEncrypted) ||
        (fabric_configuration_parameter->MustOverride)
        )
    {
        LogError("invalid argument const FABRIC_CONFIGURATION_PARAMETER* fabric_configuration_parameter=%p, int* argc=%p, char*** argv=%p (or might be unsupported)",
            fabric_configuration_parameter, argc, argv);
        result = MU_FAILURE;
    }
    else
    {
        *argv = malloc_2(2, sizeof(char**));
        if (*argv == NULL)
        {
            LogError("failure in malloc_2(2, sizeof(char**)=%zu);", sizeof(char**));
            result = MU_FAILURE;
        }
        else
        {
            (*argv)[0] = sprintf_char("%ls", fabric_configuration_parameter->Name);
            if ((*argv)[0] == NULL)
            {
                LogError("failure in sprintf_char(\"%%ls\", fabric_configuration_parameter->Name=%ls);", fabric_configuration_parameter->Name);
                result = MU_FAILURE;
            }
            else
            {
                (*argv)[1] = sprintf_char("%ls", fabric_configuration_parameter->Value);
                if ((*argv)[1] == NULL)
                {
                    LogError("failure in sprintf_char(\"%%ls\", fabric_configuration_parameter->Value=%ls);", fabric_configuration_parameter->Value);
                    result = MU_FAILURE;
                }
                else
                {
                    *argc = 2;
                    result = 0;
                    goto allok;
                }
                free((*argv)[0]);
            }
            free(*argv);
        }
    }
allok:;
    return result;
}