From: Junio C Hamano Date: Sun, 13 Sep 2009 05:42:31 GMT Subject: Re: [RFC/PATCH v4 1/2] gitweb: check given hash before trying to create snapshot Message-ID: <7vy6oj1jug.fsf@alter.siamese.dyndns.org> In-Reply-To: <4AAC8521.1060005@mailservices.uwaterloo.ca> Mark Rada writes: > On 09-09-12 11:30 PM, Junio C Hamano wrote: >>> @@ -5196,8 +5202,9 @@ sub git_snapshot { >>> die_error(403, "Unsupported snapshot format"); >>> } >>> >>> - if (!defined $hash) { >>> - $hash = git_get_head_hash($project); >>> + my $full_hash = git_get_full_hash($project, $hash); >>> + if (!$full_hash) { >>> + die_error(404, 'Hash id was not valid'); >>> } >> >> This is in the context of "snapshot", so obviously you care more about >> just "such an object exists", don't you? You also want it to be a >> tree-ish. Try giving it $hash = 'junio-gpg-pub' and see how it breaks. > > You have confused me. How is using 'junio-gpg-pub' different from the > second test case that tries to use 'frizzumFrazzum'? junio-gpg-pub tag exists in git.git but it tags a blob not a tree. $ git rev-parse junio-gpg-pub 6019c27d966fe3ce8adcc0e9f12078eef96ca6ef $ git archive junio-gpg-pub fatal: not a tree object