undefined4 * dhcp6_add_timer(int param_1,undefined4 param_2)

{
  undefined4 *puVar1;
  
  puVar1 = (undefined4 *)malloc(0x18)   //possible issue identified - semgrep
  if (puVar1 == (undefined4 *)0x0) {
    dprintf(3,"dhcp6_add_timer","can\'t allocate memory");
  }
  else {
    *puVar1 = 0;
    puVar1[1] = 0;
    puVar1[2] = 0;
    puVar1[3] = 0;
    puVar1[4] = 0;
    puVar1[5] = 0;
    if (param_1 == 0) {
      dprintf(3,"dhcp6_add_timer","timeout function unspecified");
                    /* WARNING: Subroutine does not return */
      exit(1);
    }
    puVar1[4] = param_1;
    puVar1[5] = param_2;
    puVar1[2] = 0x7fffffff;
    puVar1[3] = 0x7fffffff;
    *puVar1 = timer_head;
    if (timer_head != (undefined4 *)0x0) {
      timer_head[1] = puVar1;
    }
    puVar1[1] = &timer_head;
    timer_head = puVar1;
  }
  return puVar1;
}