Verify smartignore range

This commit is contained in:
Andrea Mazzoleni 2026-05-21 14:47:03 +02:00
parent 4c8aa12ab1
commit ee5c7ebf13
2 changed files with 12 additions and 3 deletions

View file

@ -531,8 +531,10 @@ static void state_smart_ignore(struct snapraid_state* state, devinfo_t* devinfo)
{
/* clear attributes to ignore */
for (int i = 0; i < SMART_IGNORE_MAX; ++i) {
devinfo->smart[state->smartignore[i]].raw = SMART_UNASSIGNED;
devinfo->smart[devinfo->smartignore[i]].raw = SMART_UNASSIGNED;
if (state->smartignore[i] < 256)
devinfo->smart[state->smartignore[i]].raw = SMART_UNASSIGNED;
if (devinfo->smartignore[i] < 256)
devinfo->smart[devinfo->smartignore[i]].raw = SMART_UNASSIGNED;
}
}

View file

@ -1267,7 +1267,14 @@ void state_config(struct snapraid_state* state, const char* path, const char* co
if (!e || *e) {
/* LCOV_EXCL_START */
log_fatal(EUSER, "Invalid 'smartignore' specification in '%s' at line %u\n", path, line);
log_fatal(EUSER, "Invalid 'smartignore' specification in '%s' at line %u. It should be a number.\n", path, line);
exit(EXIT_FAILURE);
/* LCOV_EXCL_STOP */
}
if (smart[si] < 1 || smart[si] >= 256) {
/* LCOV_EXCL_START */
log_fatal(EUSER, "Invalid 'smartignore' specification in '%s' at line %u. It should be between 1 and 255.\n", path, line);
exit(EXIT_FAILURE);
/* LCOV_EXCL_STOP */
}