void osl_interface_open(undefined4 *param_1,sockaddr *param_2,undefined4 param_3)
{
undefined4 uVar1;
int iVar2;
int *piVar3;
char *pcVar4;
char *pcVar5;
sockaddr *__addr;
undefined4 uVar6;
sockaddr local_50;
undefined4 local_40;
char acStack_3c [16];
char local_2c [20];
iVar2 = socket(0x11,3,0xd988);
param_1[2] = iVar2;
if (iVar2 < 0) {
piVar3 = __errno_location();
pcVar4 = strerror(*piVar3);
pcVar5 = "osl_interface_open: open %s failed: %s\n";
}
else {
local_50.sa_family = 0x11;
*param_1 = param_2;
local_50.sa_data[0] = -0x78;
local_50.sa_data[1] = -0x27;
local_50.sa_data[2] = '\0';
local_50.sa_data[3] = '\0';
local_50.sa_data[4] = '\0';
local_50.sa_data[5] = '\0';
local_50.sa_data[6] = '\0';
local_50.sa_data[7] = '\0';
local_50.sa_data[8] = '\0';
local_50.sa_data[9] = '\0';
local_50.sa_data[10] = '\0';
local_50.sa_data[0xb] = '\0';
local_50.sa_data[0xc] = '\0';
local_50.sa_data[0xd] = '\0';
local_40 = 0;
memset(acStack_3c,0,0x20) //possible issue identified - semgrep
strncpy(acStack_3c,(char *)param_2,0x10) //possible issue identified - semgrep
iVar2 = ioctl(iVar2,0x8933,acStack_3c);
__addr = &local_50;
if (iVar2 == 0) goto LAB_00403ce8;
piVar3 = __errno_location();
pcVar4 = strerror(*piVar3);
pcVar5 = "if_get_index: for interface %s: %s\n";
}
die(pcVar5,param_2,pcVar4);
__addr = param_2;
LAB_00403ce8:
local_50.sa_data[2] = local_2c[0];
local_50.sa_data[3] = local_2c[1];
local_50.sa_data[4] = local_2c[2];
local_50.sa_data[5] = local_2c[3];
iVar2 = bind(param_1[2],__addr,0x14);
if (iVar2 != 0) {
uVar6 = *param_1;
piVar3 = __errno_location();
uVar1 = local_50.sa_data._2_4_;
pcVar4 = strerror(*piVar3);
die("osl_interface_open: binding to interface %s (index %d): %s\n",uVar6,uVar1,pcVar4);
}
event_add_io(param_1[2],packetio_recv_handler,param_3);
return;
}