Re: proc_lseek backport request

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Aug 17, 2023 at 11:22:30AM +0200, t.martitz@xxxxxx wrote:
> Dear stable team,
> 
> I'm asking that 
> 
> commit 3f61631d47f1 ("take care to handle NULL ->proc_lseek()")
> 
> gets backported to the stable and LTS kernels down to 5.10.
> 
> Background:
> We are in the process of upgrading our kernels. One target kernel
> is based on 5.15 LTS.
> 
> Here we found that, if proc file drivers do not implement proc_lseek,
> user space crashes easily, because various library routines internally
> perform lseek(2). The crash happens in proc_reg_llseek, where it
> wants to jump to a NULL pointer.
> 
> We could, arguably, fix these drivers to use ".proc_lseek = no_llseek".
> But this doesn't seem like a worthwhile path forward, considering that
> latest Linux kernels (including 6.1 LTS) allow proc_lseek == NULL again 
> and *remove* no_lseek. Essentially, on HEAD, it's best practice to leave 
> proc_lseek == NULL.
> Therefore, I ask that the above procfs fix gets backported so that our
> drivers can work across all kernel versions, including latest 6.x.

For obvious technical, and legal reasons, we can not take kernel changes
only for out-of-tree kernel modules, you know this :)

So sorry, no, we should not backport this change because as-is, all
in-tree code works just fine, right?

Attempting to keep kernel code outside of the kernel tree is, on
purpose, very expensive in time and resources.  The very simple way to
solve this is to get your drivers merged properly into the mainline
kernel tree.

Have you submitted your drivers and had them rejected?

Have you taken advantage of the projects that are willing to take
out-of-tree drivers and get them merged upstream properly for free?

Is there anything else preventing your code from being accepted into the
upstream kernel tree that we can help with?

thanks,

greg k-h



> 
> I checked that this commit applies and works as expected on a board that
> runs Linux 5.15, and the observed crash goes away.
> 
> Furthermore, I investigated that the fix applies to older LTS kernels, down
> to 5.10. The lseek(2) path uses vfs_llseek() which checks for FMODE_LSEEK. This
> has been like that forever since the initial git import. However, 5.4 LTS and 
> older kernels do not have "struct proc_ops".
> 
> Thank you in advance.
> 
> Best regards,
> Thomas Martitz



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux