diff --git a/.github/workflows/kernel-build-and-test-x86_64.yml b/.github/workflows/kernel-build-and-test-x86_64.yml index 474db71aa387c..2794ca343de5d 100644 --- a/.github/workflows/kernel-build-and-test-x86_64.yml +++ b/.github/workflows/kernel-build-and-test-x86_64.yml @@ -512,13 +512,13 @@ jobs: if [ -n "$EXISTING_PR" ]; then echo "PR #$EXISTING_PR already exists, updating it" gh pr edit "$EXISTING_PR" \ - --title "[${{ github.ref_name }}] ${{ steps.commit_msg.outputs.commit_subject }}" \ + --title "[$BASE_BRANCH] ${{ steps.commit_msg.outputs.commit_subject }}" \ --body-file pr_body.md else echo "Creating new PR from ${{ github.ref_name }} to $BASE_BRANCH" gh pr create \ --base "$BASE_BRANCH" \ --head "${{ github.ref_name }}" \ - --title "[${{ github.ref_name }}] ${{ steps.commit_msg.outputs.commit_subject }}" \ + --title "[$BASE_BRANCH] ${{ steps.commit_msg.outputs.commit_subject }}" \ --body-file pr_body.md fi diff --git a/fs/nfs/export.c b/fs/nfs/export.c index 01596f2d0a1ed..0ad412ab10f65 100644 --- a/fs/nfs/export.c +++ b/fs/nfs/export.c @@ -66,14 +66,21 @@ nfs_fh_to_dentry(struct super_block *sb, struct fid *fid, { struct nfs_fattr *fattr = NULL; struct nfs_fh *server_fh = nfs_exp_embedfh(fid->raw); - size_t fh_size = offsetof(struct nfs_fh, data) + server_fh->size; + size_t fh_size = offsetof(struct nfs_fh, data); const struct nfs_rpc_ops *rpc_ops; struct dentry *dentry; struct inode *inode; - int len = EMBED_FH_OFF + XDR_QUADLEN(fh_size); + int len = EMBED_FH_OFF; u32 *p = fid->raw; int ret; + /* Initial check of bounds */ + if (fh_len < len + XDR_QUADLEN(fh_size) || + fh_len > XDR_QUADLEN(NFS_MAXFHSIZE)) + return NULL; + /* Calculate embedded filehandle size */ + fh_size += server_fh->size; + len += XDR_QUADLEN(fh_size); /* NULL translates to ESTALE */ if (fh_len < len || fh_type != len) return NULL;