On Mon, 26 Feb 2007, Johannes Schindelin wrote: > > Signed-off-by: Johannes Schindelin <Johannes.Schindelin@xxxxxx> > --- > builtin-fetch--tool.c | 4 ++++ > 1 files changed, 4 insertions(+), 0 deletions(-) > > diff --git a/builtin-fetch--tool.c b/builtin-fetch--tool.c > index 48de08d..e5bb560 100644 > --- a/builtin-fetch--tool.c > +++ b/builtin-fetch--tool.c > @@ -14,6 +14,10 @@ static char *get_stdin(void) > data = xrealloc(data, offset + CHUNK_SIZE); > read = xread(0, data + offset, CHUNK_SIZE); > } > + if (read > 0 && data[read - 1] == '\n') > + data[read - 1] = '\0'; > + else > + data[read] = '\0'; > return data; > } This is horrible crap. First off, "read" here may be -1. Secondly, "data[read]", even if read is positive, is in the *middle* of a buffer. It should probably be something like if (read > 0) offset += read; /* Why do this? Because Dscho did.. */ if (offset && data[offset-1] == '\n') offset--; data[offset] = 0; which at least seems to be potentially sane. Linus - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html