/* WARNING: Removing unreachable block (ram,0x00416bac) */
/* WARNING: Removing unreachable block (ram,0x00416a74) */
/* WARNING: Removing unreachable block (ram,0x00416dfc) */
/* WARNING: Removing unreachable block (ram,0x00416a84) */
/* WARNING: Removing unreachable block (ram,0x00416ddc) */
/* WARNING: Removing unreachable block (ram,0x00416aa8) */
/* WARNING: Removing unreachable block (ram,0x00416da0) */
/* WARNING: Removing unreachable block (ram,0x00416ab8) */
/* WARNING: Removing unreachable block (ram,0x00416b64) */
/* WARNING: Removing unreachable block (ram,0x00416b7c) */
/* WARNING: Removing unreachable block (ram,0x00416d74) */
undefined4 configure_interface(int *param_1)
{
uint uVar1;
undefined4 *puVar2;
undefined4 uVar3;
char *pcVar4;
undefined4 uVar5;
int *piVar6;
int iVar7;
int *piVar8;
undefined4 *puVar9;
dprintf(7,"configure_interface","called");
if (param_1 != (int *)0x0) {
do {
uVar1 = if_nametoindex((char *)param_1[1]);
if (uVar1 == 0) {
iVar7 = param_1[1];
piVar8 = __errno_location();
pcVar4 = strerror(*piVar8);
dprintf(3,"configure_interface","invalid interface(%s): %s",iVar7,pcVar4);
LAB_00416918:
FUN_00413d74(DAT_0043cd10);
DAT_0043cd10 = (undefined4 *)0x0;
return 0xffffffff;
}
puVar2 = (undefined4 *)malloc(0x38) //possible issue identified - semgrep
if (puVar2 == (undefined4 *)0x0) {
dprintf(3,"configure_interface","memory allocation for %s failed",param_1[1]);
goto LAB_00416918;
}
puVar2[1] = 0;
puVar2[2] = 0;
puVar2[3] = 0;
puVar2[4] = 0;
puVar2[5] = 0;
puVar2[6] = 0;
puVar2[7] = 0;
puVar2[8] = 0;
puVar2[9] = 0;
puVar2[10] = 0;
puVar2[0xb] = 0;
puVar2[0xc] = 0;
puVar2[0xd] = 0;
pcVar4 = (char *)param_1[1];
*puVar2 = DAT_0043cd10;
DAT_0043cd10 = puVar2;
pcVar4 = strdup(pcVar4);
puVar2[1] = pcVar4;
if (pcVar4 == (char *)0x0) {
dprintf(3,"configure_interface","failed to copy ifname");
goto LAB_00416918;
}
piVar8 = (int *)param_1[3];
puVar2[7] = puVar2 + 6;
puVar2[9] = puVar2 + 8;
puVar2[4] = 0xffffffff;
puVar2[6] = 0;
puVar2[8] = 0;
piVar6 = DAT_0043cd9c;
for (; DAT_0043cd9c = piVar6, piVar8 != (int *)0x0; piVar8 = (int *)*piVar8) {
switch(piVar8[2]) {
case 0:
iVar7 = FUN_00416224(0,puVar2,piVar8[6]);
if (iVar7 != 0) {
dprintf(3,"configure_interface","****%d****",0xef);
goto LAB_00416918;
}
break;
case 1:
iVar7 = FUN_00416224(2,puVar2,piVar8[6]);
if (iVar7 != 0) {
dprintf(3,"configure_interface","****%d****",0xf6);
goto LAB_00416918;
}
break;
case 2:
goto LAB_00416c38;
case 3:
goto LAB_00416c38;
default:
dprintf(3,"configure_interface","%s:%d invalid interface configuration",configfilename,
piVar8[3]);
goto LAB_00416918;
case 6:
uVar1 = piVar8[4];
puVar2[4] = uVar1;
if (0xff < uVar1) {
dprintf(6,"configure_interface","%s:%d bad value: %d",configfilename,piVar8[3],uVar1);
goto LAB_00416918;
}
break;
case 7:
LAB_00416c38:
dprintf(6,"configure_interface","%s:%d client-only configuration",configfilename,piVar8[3]
);
goto LAB_00416918;
case 0xb:
puVar9 = (undefined4 *)piVar8[7];
if (piVar6 == (int *)0x0) {
LAB_00416d3c:
dprintf(3,"configure_interface","%s:%d pool \'%s\' not found",configfilename,piVar8[3],
*puVar9);
goto LAB_00416918;
}
pcVar4 = (char *)*puVar9;
while (iVar7 = strcmp(pcVar4,(char *)piVar6[1]), iVar7 != 0) {
piVar6 = (int *)*piVar6;
if (piVar6 == (int *)0x0) goto LAB_00416d3c;
}
if ((puVar9[2] != 0xffffffff) &&
((puVar9[1] == 0xffffffff || ((uint)puVar9[2] < (uint)puVar9[1])))) {
dprintf(3,"configure_interface","%s:%d ",configfilename,piVar8[3],
"specified a larger preferred lifetime than valid lifetime");
goto LAB_00416918;
}
uVar5 = puVar9[2];
uVar3 = puVar9[1];
puVar2[0xb] = *puVar9;
puVar2[0xc] = uVar3;
puVar2[0xd] = uVar5;
pcVar4 = strdup((char *)*puVar9);
puVar2[0xb] = pcVar4;
if (pcVar4 == (char *)0x0) {
dprintf(3,"configure_interface","memory allocation failed",0);
goto LAB_00416918;
}
dprintf(7,"configure_interface","pool \'%s\' is specified to the interface \'%s\'",pcVar4,
puVar2[1]);
}
piVar6 = DAT_0043cd9c;
}
param_1 = (int *)*param_1;
} while (param_1 != (int *)0x0);
}
return 0;
}