Subject: bug#75569: 30.0.93; Large /proc/* file are read incompletely

From: Eli Zaretskii <[email-masked]>
Date: Sun, 19 Jan 2025 13:33:34 +0200

> Cc: [email-masked], [email-masked], [email-masked]
> Date: Sun, 19 Jan 2025 12:52:39 +0200
> From: Eli Zaretskii <[email-masked]>
> 
> > From: Juri Linkov <[email-masked]>
> > Cc: [email-masked],  Paul Eggert <[email-masked]>,
> >   [email-masked]
> > Date: Sat, 18 Jan 2025 19:31:34 +0200
> > 
> > >> > Then how about
> > >> > 
> > >> >    if ((regular && st.st_size > 0) || (!regular && seekable) || !NILP (end))
> > >> 
> > >> That should work too but I expect we're overthinking it; see bellow.
> > >
> > > Juri and Daniel, could you please try the change above?
> > 
> > There are many large files under /proc that you can try
> > such as /proc/kallsyms.
> 
> Ah, thanks.
> 
> > I tried the change above, and it works.
> > 
> > >> > That would exclude non-regular files that are seekable, which would be
> > >> > a regression, I think.
> > >> 
> > >> I expect it's a bugfix not a regression. For such files, end_offset
> > >> is TYPE_MAXIUMUM (off_t), which Emacs will try to create an enormous buffer.
> > >
> > > Juri and Daniel, could you also try
> > >
> > >   if ((regular && st.st_size > 0) || !NILP (end))  
> > >
> > > instead?
> > 
> > This works as well.
> 
> Thanks for testing.

Actually... are you sure these changes fixed the problem?  I've
installed one of them, and /proc/kallsyms is not read in its entirety.
Which file did you try this with, and what is its real size?