Rémi Bernon (@rbernon) commented about dlls/windows.media.speech/vosk.c:
- {
if (dirent->d_type != DT_DIR)
continue;
if (!strcmp(dir_name = dirent->d_name, ".."))
continue;
if (strstr(dir_name, vosk_model_identifier_small))
dir_name += strlen(vosk_model_identifier_small);
else if (strstr(dir_name, vosk_model_identifier))
dir_name += strlen(vosk_model_identifier);
if (strstr(dir_name, lang_region) != dir_name && strstr(dir_name, lang) != dir_name)
continue;
path = malloc(strlen(folder) + 1 /* '/' */ + strlen(dirent->d_name) + 1);
You can probably save at least one `strlen`. Also you don't check for malloc failures.