From: Duy Nguyen <pclouds@gmail.com>
To: Jeff King <peff@peff.net>
Cc: Johannes Schindelin <johannes.schindelin@gmx.de>,
Junio C Hamano <gitster@pobox.com>,
git@vger.kernel.org
Subject: Re: [PATCH] fsck: properly bound "invalid tag name" error message
Date: Mon, 8 Dec 2014 18:28:35 +0700 [thread overview]
Message-ID: <20141208112835.GA15919@lanh> (raw)
In-Reply-To: <20141208055706.GA30207@peff.net>
On Mon, Dec 08, 2014 at 12:57:06AM -0500, Jeff King wrote:
> I do admit that I am tempted to teach index-pack to always NUL-terminate
> objects in memory that we feed to fsck, just to be on the safe side. It
> doesn't cost much, and could prevent a silly mistake (either in the
> future, or one that I missed in my analysis).
I think I'm missing a "but.." here. Maybe "but I didn't have
time". The change looks simple enough. The remaining *alloc in
index-pack is either for arrays, or already NUL-terminated
(patch_delta), or does explicit boundary check (compare_objects).
It may be interesting to go over `git grep alloc\(` and see if we
should use the allocz version instead. I think in some place we do
xmalloc(len + 1) which could be replaced with xmallocz(len)
-- 8< --
Subject: [PATCH] index-pack: terminate object buffers with NUL
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
builtin/index-pack.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/builtin/index-pack.c b/builtin/index-pack.c
index a369f55..4632117 100644
--- a/builtin/index-pack.c
+++ b/builtin/index-pack.c
@@ -447,7 +447,7 @@ static void *unpack_entry_data(unsigned long offset, unsigned long size,
if (type == OBJ_BLOB && size > big_file_threshold)
buf = fixed_buf;
else
- buf = xmalloc(size);
+ buf = xmallocz(size);
memset(&stream, 0, sizeof(stream));
git_inflate_init(&stream);
@@ -552,7 +552,7 @@ static void *unpack_data(struct object_entry *obj,
git_zstream stream;
int status;
- data = xmalloc(consume ? 64*1024 : obj->size);
+ data = xmallocz(consume ? 64*1024 : obj->size);
inbuf = xmalloc((len < 64*1024) ? len : 64*1024);
memset(&stream, 0, sizeof(stream));
--
2.2.0.60.gb7b3c64
-- 8< --
next prev parent reply other threads:[~2014-12-08 11:18 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-08 5:48 [PATCH] fsck: properly bound "invalid tag name" error message Jeff King
2014-12-08 5:57 ` Jeff King
2014-12-08 11:17 ` Johannes Schindelin
2014-12-08 11:22 ` Jeff King
2014-12-08 11:28 ` Duy Nguyen [this message]
2014-12-08 11:35 ` Johannes Schindelin
2014-12-08 11:47 ` Jeff King
2014-12-08 13:46 ` Johannes Schindelin
2014-12-08 14:17 ` [PATCH v2] index-pack: terminate object buffers with NUL Johannes Schindelin
2014-12-08 11:01 ` [PATCH] fsck: properly bound "invalid tag name" error message Johannes Schindelin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20141208112835.GA15919@lanh \
--to=pclouds@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=johannes.schindelin@gmx.de \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.