| Date | Fri, 21 Oct 2016 11:42:31 -0700 | From | Eric Biggers <> | Subject | Re: [PATCH 20/26] ubifs: Add support for encrypted symlinks |
| |
On Fri, Oct 21, 2016 at 02:48:35PM +0200, Richard Weinberger wrote: > + > + if (!dentry) > + return ERR_PTR(-ECHILD); > + > + if (ubifs_crypt_is_encrypted(inode)) { > + err = fscrypt_get_encryption_info(inode); > + if (err) > + return ERR_PTR(err); > + } else > + return ui->data; > +
This will make path lookups drop out of RCU mode when an unencrypted symlink is followed. This can be avoided by checking for unencrypted symlinks first:
if (!ubifs_crypt_is_encrypted(inode)) return ui->data;
if (!dentry) return ERR_PTR(-ECHILD);
err = fscrypt_get_encryption_info(inode); if (err) return ERR_PTR(err);
> + > + pstr.name[err] = '\0'; > +
In 4.9, fscrypt_fname_{disk_to_usr,usr_to_disk} return 0 instead of the output length, so this will need to be changed to 'pstr.name[pstr.len] = '\0''.
|