int br_init(void)
{
bool bVar1;
undefined4 *__s;
undefined4 uVar2;
int *piVar3;
int iVar4;
int iVar5;
undefined4 *puVar6;
int iVar7;
undefined4 local_a0 [33];
br_socket_fd = socket(2,2,0);
if (br_socket_fd < 0) {
piVar3 = __errno_location();
iVar5 = *piVar3;
}
else {
iVar4 = br_get_version();
iVar5 = 0x3039;
if (iVar4 == 1) {
puVar6 = local_a0;
iVar4 = br_ioctl(1,puVar6,0x20);
if (iVar4 < 0) {
piVar3 = __errno_location();
iVar7 = *piVar3;
}
else {
bridge_list = (undefined4 *)0x0;
iVar5 = 0;
do {
bVar1 = iVar4 <= iVar5;
iVar5 = iVar5 + 1;
if (bVar1) {
return 0;
}
__s = (undefined4 *)malloc(0x49c) //possible issue identified - semgrep
memset(__s,0,0x49c) //possible issue identified - semgrep
uVar2 = *puVar6;
*__s = bridge_list;
__s[1] = uVar2;
__s[6] = 0;
bridge_list = __s;
iVar7 = FUN_004094e4(__s);
puVar6 = puVar6 + 1;
} while ((iVar7 == 0) && (iVar7 = FUN_00409398(__s), iVar7 == 0));
while (bridge_list != (undefined4 *)0x0) {
puVar6 = (undefined4 *)*bridge_list;
FUN_00409200(bridge_list);
bridge_list = puVar6;
}
}
return iVar7;
}
}
return iVar5;
}