Re: [PATCH v2 5/5] convert: add filter.<driver>.process option
- From
- Eric Wong <e@80x24.org>
- Date
- Aug 5, 2016, 18:55 UTC
- Message-ID
- <20160805185559.GB463@starla>
- In-Reply-To
- <64C7D52F-9030-460C-8F61-4076F5C1DDF6@gmail.com>
Lars Schneider <larsxschneider@gmail.com> wrote:
Show 19 quoted lines
> > On 27 Jul 2016, at 11:41, Eric Wong <e@80x24.org> wrote:
> > larsxschneider@gmail.com wrote:
> >> +static int apply_protocol_filter(const char *path, const char *src, size_t len,
> >> + int fd, struct strbuf *dst, const char *cmd,
> >> + const char *filter_type)
> >> +{
> >
> > <snip>
> >
> >> + if (fd >= 0 && !src) {
> >> + ret &= fstat(fd, &file_stat) != -1;
> >> + len = file_stat.st_size;
> >
> > Same truncation bug I noticed earlier; what I originally meant
> > is the `len' arg probably ought to be off_t, here, not size_t.
> > 32-bit x86 Linux systems have 32-bit size_t (unsigned), but
> > large file support means off_t is 64-bits (signed).
>
> OK. Would it be OK to keep size_t for this patch series?I think there should at least be a truncation warning (or die) for larger-than-4GB files on 32-bit. I don't know how common they are for git-lfs users.
Perhaps using xsize_t in git-compat-util.h works for now:
len = xsize_t(file_stat.st_size);
(sorry, I haven't had much time to look at your other updates)