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

Bug#831426: jessie-pu: package ccache/3.1.12-1



Control: tags -1 + pending

On Sun, 2016-07-31 at 11:55 +0200, Julien Cristau wrote:
> Control: tag -1 = jessie confirmed
> 
> On Sat, Jul 30, 2016 at 16:55:28 +0200, Joel Rosdahl wrote:
> 
> > On 29 July 2016 at 14:18, Julien Cristau <jcristau@debian.org> wrote:
> > > It doesn't look like you're doing any error checking from lstat; is there no
> > > way it'll fail here?
> > 
> > Hm, right, not checking the error code is a mistake I made when backporting the
> > fix. However, I don't think it will cause any problem in practice.
> > 
> > The code looks like this about 30 lines above:
> > 
> >     if (stat(argv[i], &st) != 0 || !S_ISREG(st.st_mode)) {
> >         // ...
> >         continue;
> >     }
> > 
> > So if argv[i] doesn't exist or is not a file (or a symlink to an existing
> > file), we won't reach the lstat call. However, lstat will fail if the file or
> > symlink happens to be removed between the stat and lstat calls. It looks like
> > lstat doesn't touch the stat buffer on failure, so st's content will remain
> > from the stat call and S_ISLNK(st.st_mode) will then be false. The false branch
> > will call make_relative_path which handles non-existing files correctly.
> > 
> > Do you think that this is serious enough to require an updated
> > package? If so, I'll do it.
> > 
> Thanks for looking into it.  Given the above, feel free to upload with
> your original patch.

Uploaded and flagged for acceptance.

Regards,

Adam


Reply to: