fix(color): only open model###.yml files (#2514)

* Only open model#x.yml files

* Remove Trace
This commit is contained in:
Cliff
2022-10-12 12:59:10 +10:00
committed by GitHub
parent e7969e737d
commit 44add84b17
+17 -6
View File
@@ -999,13 +999,23 @@ bool ModelsList::loadYaml()
FRESULT res = f_readdir(&moddir, &finfo);
if (res != FR_OK || finfo.fname[0] == 0) break;
if (finfo.fattrib & AM_DIR) continue;
int len = strlen(finfo.fname);
if (len < 5 ||
unsigned int len = strlen(finfo.fname);
// Only open model###.yml files
bool modelNameInvalid = false;
if (strncasecmp(finfo.fname, MODEL_FILENAME_PREFIX, sizeof(MODEL_FILENAME_PREFIX) - 1) == 0) {
for (unsigned int i = sizeof(MODEL_FILENAME_PREFIX) - 1; i < len - 4; i++) {
if(finfo.fname[i] < '0' || finfo.fname[i] > '9') {
modelNameInvalid = true;
break;
}
}
} else {
modelNameInvalid = true;
}
if (modelNameInvalid ||
strcasecmp(finfo.fname + len - 4, YAML_EXT) || // Skip non .yml files
strcasecmp(finfo.fname, LABELS_FILENAME) ==
0 || // Skip labels.yml file
strcasecmp(finfo.fname, MODELS_FILENAME) ==
0 || // Skip models.yml file
(finfo.fattrib & AM_DIR)) { // Skip sub dirs
continue;
}
@@ -1050,6 +1060,7 @@ bool ModelsList::loadYaml()
if (result == FR_NO_PATH) result = f_mkdir(UNUSED_MODELS_PATH);
if (result != FR_OK) {
TRACE("Unable to create unused models folder");
f_close(&file);
return false;
}
} else f_closedir(&unusedFolder);