if (data[count - 1] == '\0' || data[count - 1] == '\n')
copy_count -= 1;
- if (copy_count >= sizeof(rank->dimm->label))
+ if (copy_count == 0 || copy_count >= sizeof(rank->dimm->label))
return -EINVAL;
strncpy(rank->dimm->label, data, copy_count);
if (data[count - 1] == '\0' || data[count - 1] == '\n')
copy_count -= 1;
- if (copy_count >= sizeof(dimm->label))
+ if (copy_count == 0 || copy_count >= sizeof(dimm->label))
return -EINVAL;
strncpy(dimm->label, data, copy_count);
edac_dbg(0, "\n");
#ifdef CONFIG_EDAC_DEBUG
- debugfs_remove(mci->debugfs);
+ edac_debugfs_remove_recursive(mci->debugfs);
#endif
#ifdef CONFIG_EDAC_LEGACY_SYSFS
edac_delete_csrow_objects(mci);