Check short OID len in odb, not in backends

This commit is contained in:
Russell Belfer 2014-03-05 13:06:22 -08:00
parent 13f7ecd7b9
commit 26875825df
2 changed files with 3 additions and 10 deletions

View File

@ -800,7 +800,6 @@ int git_odb_read_prefix(
if (len < GIT_OID_MINPREFIXLEN)
return git_odb__error_ambiguous("prefix length too short");
if (len > GIT_OID_HEXSZ)
len = GIT_OID_HEXSZ;

View File

@ -647,12 +647,9 @@ static int loose_backend__read_prefix(
{
int error = 0;
assert(len <= GIT_OID_HEXSZ);
assert(len >= GIT_OID_MINPREFIXLEN && len <= GIT_OID_HEXSZ);
if (len < GIT_OID_MINPREFIXLEN)
error = git_odb__error_ambiguous("prefix length too short");
else if (len == GIT_OID_HEXSZ) {
if (len == GIT_OID_HEXSZ) {
/* We can fall back to regular read method */
error = loose_backend__read(buffer_p, len_p, type_p, backend, short_oid);
if (!error)
@ -698,10 +695,7 @@ static int loose_backend__exists_prefix(
git_buf object_path = GIT_BUF_INIT;
int error;
assert(backend && out && short_id);
if (len < GIT_OID_MINPREFIXLEN)
return git_odb__error_ambiguous("prefix length too short");
assert(backend && out && short_id && len >= GIT_OID_MINPREFIXLEN);
error = locate_object_short_oid(
&object_path, out, (loose_backend *)backend, short_id, len);