Re: [PATCH] list-objects: perform NULL check before the variable is dereferenced
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Apr 10, 2012, 00:09 UTC
- Message-ID
- <7vaa2ktplj.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <CACsJy8ASo8j+hmJ7Kw2uLcD9cS8SXc6yOoc5GDUcFHYk9W9a_g@mail.gmail.com>
Nguyen Thai Ngoc Duy <pclouds@gmail.com> writes:
Show 17 quoted lines
> 2012/4/10 Junio C Hamano <gitster@pobox.com>: >> Nguyễn Thái Ngọc Duy <pclouds@gmail.com> writes: >> >>> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> >>> --- >>> list-objects.c | 10 ++++++---- >>> 1 files changed, 6 insertions(+), 4 deletions(-) >> >> Please explain why this is needed? >> >> I can see that process_blob() is called from process_tree() which passes >> the return value from lookup_blob(entry.sha1) directly without looking at >> it. lookup_blob() can issue an error message and return NULL if there is >> a SHA-1 collision with an object that is not a blob. > > to avoid segmentation fault in that case, if "blob" is NULL, it dies > at blob->object anyway and the check "if (!obj)" is useless.
Well, I didn't mean that you should explain whatever to _me_ as a response; I meant that the log message should explain that to future readers. I thought you have been here long enough to know that ;-)
Also "check NULL before dereferencing" means "avoid segmentation fault", so that is not the primary thing that needs to be explained. The point is to explain why and how a NULL could come into the codepath in the first place.
Please try again when the post-1.7.10 cycle opens.
Thanks.