From: Junio C Hamano Date: Tue, 10 Apr 2012 00:09:02 GMT Subject: Re: [PATCH] list-objects: perform NULL check before the variable is dereferenced Message-ID: <7vbon0tplt.fsf@alter.siamese.dyndns.org> In-Reply-To: Nguyen Thai Ngoc Duy writes: > 2012/4/10 Junio C Hamano : >> Nguyễn Thái Ngọc Duy   writes: >> >>> Signed-off-by: Nguyễn Thái Ngọc Duy >>> --- >>>  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 post 1.7.10 cycle opens. Thanks.