int cfparse(char *param_1)

{
  char *pcVar1;
  int iVar2;
  int *piVar3;
  char *pcVar4;
  
  configfilename = param_1;
  DAT_0043ce00 = fopen(param_1,"r")   //possible issue identified - semgrep
  pcVar1 = configfilename;
  if (DAT_0043ce00 == (FILE *)0x0) {
    piVar3 = __errno_location();
    pcVar4 = strerror(*piVar3);
    dprintf(3,"cfparse","cfparse: fopen(%s): %s",pcVar1,pcVar4);
    return (*piVar3 == 2) - 1;
  }
  iVar2 = yyparse();
  if (iVar2 == 0) {
    if (DAT_0043ce10 == 0) {
                    /* WARNING: Could not recover jumptable at 0x0041d900. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      iVar2 = cf_post_config();
      return iVar2;
    }
  }
  else if (DAT_0043ce10 == 0) {
    yyerror("fatal parse failure: exiting");
    return -1;
  }
  yyerror("fatal parse failure: exiting (%d errors)");
  return -1;
}