On Tue, Oct 26, 2021 at 4:04 PM Derrick Stolee <stolee@xxxxxxxxx> wrote: > > On 10/26/2021 12:22 PM, René Scharfe wrote: > > > > slash can end up one less than path. If path points to the first char > > of a string object this would be undefined if I read 6.5.6 of C99 > > correctly. (A pointer to the array element just after the last one is > > specified as fine as long as it's not dereferenced, but a pointer to > > the element before the first one is not mentioned and thus undefined.) > > I also see the specification saying this is undefined, but I do not > understand how any reasonable compiler/runtime could do anything > other than store "path - 1" as if it was an unsigned integer. There > are a lot of references about "the array" that the pointer points to, > but these pointer arithmetic things are not actually accessing the > memory allocator. > > > Do you really need the ">=" instead of ">"? > > I think the only case that would be of any interest is if the path > started with a slash, which would not be a valid worktree path. Agreed. > I believe we could use ">" for an abundance of caution with the > undefined nature of subtracting from a pointer, but it is non- > obvious that that is a real problem. Yeah, I think it should be fine to use ">" to be extra careful.