Daniel Barkalow schrieb:
Conditional needs a "+ 1", too.
[...]
Same here.
Thank you for spotting this. Fix-up patch below.
Signed-off-by: Rene Scharfe <redacted>
---
Embarrassing. I'm off to go to sleep now.
archive-tar.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/archive-tar.c b/archive-tar.c
index eb0abc7..33e7657 100644
--- a/archive-tar.c
+++ b/archive-tar.c
@@ -82,7 +82,7 @@ static void strbuf_append_string(struct strbuf *sb, const char *s)
{
int slen = strlen(s);
int total = sb->len + slen;
- if (total > sb->alloc) {
+ if (total + 1 > sb->alloc) {
sb->buf = xrealloc(sb->buf, total + 1);
sb->alloc = total + 1;
}@@ -271,7 +271,7 @@ static int write_tar_entry(const unsigned char *sha1,
path.alloc = PATH_MAX;
path.len = path.eof = 0;
}
- if (path.alloc < baselen + filenamelen) {
+ if (path.alloc < baselen + filenamelen + 1) {
free(path.buf);
path.buf = xmalloc(baselen + filenamelen + 1);
path.alloc = baselen + filenamelen + 1;