関数 parse_consol(definition1); を呼び出しています。ここで、定義、つまり渡される引数は char* 型であり、xml ファイルの絶対パスです。(デバッグによって)チェックすると、渡される値は絶対に正しいですが、関数の定義を制御すると、取得する値の最後にランダムな文字が追加され、失敗します。
関数の定義で、これらの文字が実際の引数の最後にどのように追加されたかを知る必要があります。
以下のコメントからのコード:
definition_state1 = (char*)malloc(((int) strlen(((char*)definition_path)+1)));
strcpy(definition_state1 ,(char*)definition_path);
definition_state2 = (char*)malloc(((int) strlen(((char*)value[1])+1)));
strcpy(definition_state2 ,(char*)value[1]);
strcat(definition_state1,definition_state2);
get_license_properties("D:\\Automation\\InputFiles\\current_state\\c2v1.c2v"); // parser for decoded c2v
parse_consolidated(definition_state1); // parser for consolidated xm