Em 26/08/2025 04:19, Amir Goldstein escreveu:
Andre, Just noticed this is a bug, should have been if (*dst), but anyway following Gabriel's comments I have made this change in my tree (pending more strict related changes): static int ovl_casefold(struct ovl_readdir_data *rdd, const char *str, int len, char **dst) { const struct qstr qstr = { .name = str, .len = len }; char *cf_name; int cf_len; if (!IS_ENABLED(CONFIG_UNICODE) || !rdd->map || is_dot_dotdot(str, len)) return 0; cf_name = kmalloc(NAME_MAX, GFP_KERNEL); if (!cf_name) { rdd->err = -ENOMEM; return -ENOMEM; } cf_len = utf8_casefold(rdd->map, &qstr, *dst, NAME_MAX);
The third argument here should be cf_name, not *dst anymore.
if (cf_len > 0) *dst = cf_name; else kfree(cf_name); return cf_len; }
Thanks, Amir.