Re: git segfaults on older Solaris releases
On Thu, 2016-04-07 at 11:50 -0700, Junio C Hamano wrote:
Show 25 quoted lines
> Junio C Hamano <gitster@pobox.com> writes:
>
> > "Tom G. Christensen" <tgc@jupiterrise.com> writes:
> >
> > > The reason for the crash is simple, a null value was passed to
> > > the 's'
> > > format for the *printf family of functions.
> > > ...
> > > Passing a null value to the 's' format is explicitly documented
> > > as
> > > giving undefined results on Solaris, even on Solaris 11(2).
> >
> > Do you mean
> >
> > *printf("...%.*s...", ..., 0, NULL, ...)
> >
> > i.e. you saw a NULL passed only when we use %.*s with width=0?
>
> So, I've looked at places where we use "%.*s" with "prefix" nearby,
> and it seems that this is the only place.
>
> The "prefix" being a NULL is a perfectly valid state throughout the
> system and means a different thing than it being an empty string, so
> it is valid for callers of prefix_path() and prefix_path_gently() to
> pass prefix=NULL as long as they pass len=0.TIOLI: The code below does not reflect the "as long as they pass len=0"
condition. Maybe add an assert for that?