| line |
true |
false |
branch |
|
84
|
0 |
1582 |
GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, be->objects_dirlen, GIT_OID_HEXSZ); |
|
|
0 |
1582 |
GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, be->objects_dirlen, GIT_OID_HEXSZ); |
|
85
|
0 |
1582 |
GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, alloclen, 3); |
|
|
0 |
1582 |
GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, alloclen, 3); |
|
86
|
0 |
1582 |
if (git_buf_grow(name, alloclen) < 0) |
|
113
|
0 |
0 |
if (len == 0) |
|
121
|
0 |
0 |
while (c & 0x80) { |
|
122
|
0 |
0 |
if (len <= used) |
|
125
|
0 |
0 |
if (sizeof(size_t) * 8 <= shift) |
|
135
|
0 |
0 |
if (out_len) |
|
158
|
6489 |
0 |
for (i = 0, typename_len = 0; i < data_len; i++, typename_len++) { |
|
159
|
1140 |
5349 |
if (data[i] == ' ') |
|
163
|
0 |
1140 |
if (typename_len == data_len) |
|
169
|
3797 |
0 |
for (i = size_idx, size_len = 0; i < data_len; i++, size_len++) { |
|
170
|
1140 |
2657 |
if (data[i] == '\0') |
|
174
|
0 |
1140 |
if (i == data_len) |
|
177
|
1140 |
0 |
if (git__strntol64(&size, &data[size_idx], size_len, NULL, 10) < 0 || |
|
|
1140 |
0 |
if (git__strntol64(&size, &data[size_idx], size_len, NULL, 10) < 0 || |
|
188
|
0 |
1140 |
if (GIT_ADD_SIZET_OVERFLOW(out_len, i, 1)) |
|
|
0 |
1140 |
if (GIT_ADD_SIZET_OVERFLOW(out_len, i, 1)) |
|
202
|
0 |
1140 |
if (data_len < 2) |
|
206
|
1140 |
0 |
return (data[0] & 0x8F) == 0x08 && !(w % 31); |
|
|
1140 |
0 |
return (data[0] & 0x8F) == 0x08 && !(w % 31); |
|
240
|
0 |
0 |
if ((error = parse_header_packlike(&hdr, &head_len, obj_data, obj_len)) < 0) |
|
243
|
0 |
0 |
if (!git_object_typeisloose(hdr.type) || head_len > obj_len) { |
|
|
0 |
0 |
if (!git_object_typeisloose(hdr.type) || head_len > obj_len) { |
|
255
|
0 |
0 |
if (GIT_ADD_SIZET_OVERFLOW(&alloc_size, hdr.size, 1) || |
|
|
0 |
0 |
if (GIT_ADD_SIZET_OVERFLOW(&alloc_size, hdr.size, 1) || |
|
261
|
0 |
0 |
if ((error = git_zstream_inflatebuf(&body, obj_data, obj_len)) < 0) |
|
281
|
757 |
0 |
if ((error = git_zstream_init(&zstream, GIT_ZSTREAM_INFLATE)) < 0 || |
|
|
757 |
0 |
if ((error = git_zstream_init(&zstream, GIT_ZSTREAM_INFLATE)) < 0 || |
|
292
|
757 |
0 |
if ((error = git_zstream_get_output(head, &decompressed, &zstream)) < 0 || |
|
|
757 |
0 |
if ((error = git_zstream_get_output(head, &decompressed, &zstream)) < 0 || |
|
296
|
0 |
757 |
if (!git_object_typeisloose(hdr.type)) { |
|
306
|
0 |
757 |
if (GIT_ADD_SIZET_OVERFLOW(&alloc_size, hdr.size, 1) || |
|
|
0 |
757 |
if (GIT_ADD_SIZET_OVERFLOW(&alloc_size, hdr.size, 1) || |
|
312
|
0 |
757 |
assert(decompressed >= head_len); |
|
315
|
742 |
15 |
if (body_len) |
|
319
|
0 |
757 |
if ((error = git_zstream_get_output(body + body_len, &decompressed, &zstream)) < 0) |
|
322
|
0 |
757 |
if (!git_zstream_done(&zstream)) { |
|
335
|
0 |
757 |
if (error < 0) |
|
347
|
757 |
0 |
assert(out && loc); |
|
|
0 |
757 |
assert(out && loc); |
|
349
|
0 |
757 |
if (git_buf_oom(loc)) |
|
356
|
0 |
757 |
if ((error = git_futils_readbuffer(&obj, loc->ptr)) < 0) |
|
359
|
0 |
757 |
if (!is_zlib_compressed_data((unsigned char *)obj.ptr, obj.size)) |
|
376
|
0 |
0 |
if ((error = parse_header_packlike(&hdr, &header_len, data, len)) < 0) |
|
394
|
383 |
0 |
if ((error = git_zstream_init(&zs, GIT_ZSTREAM_INFLATE)) < 0 || |
|
|
383 |
0 |
if ((error = git_zstream_init(&zs, GIT_ZSTREAM_INFLATE)) < 0 || |
|
395
|
383 |
0 |
(error = git_zstream_set_input(&zs, data, len)) < 0 || |
|
396
|
383 |
0 |
(error = git_zstream_get_output_chunk(inflated, &inflated_len, &zs)) < 0 || |
|
414
|
383 |
0 |
assert(out && loc); |
|
|
0 |
383 |
assert(out && loc); |
|
416
|
0 |
383 |
if (git_buf_oom(loc)) |
|
421
|
0 |
383 |
if ((error = fd = git_futils_open_ro(loc->ptr)) < 0) |
|
424
|
0 |
383 |
if ((obj_len = p_read(fd, obj, sizeof(obj))) < 0) { |
|
429
|
0 |
383 |
if (!is_zlib_compressed_data(obj, (size_t)obj_len)) |
|
434
|
383 |
0 |
if (!error && !git_object_typeisloose(out->type)) { |
|
|
0 |
383 |
if (!error && !git_object_typeisloose(out->type)) { |
|
441
|
383 |
0 |
if (fd >= 0) |
|
453
|
1139 |
0 |
if (!error && !git_path_exists(object_location->ptr)) |
|
|
3 |
1136 |
if (!error && !git_path_exists(object_location->ptr)) |
|
463
|
0 |
8 |
if (git_buf_len(pathbuf) - sstate->dir_len != GIT_OID_HEXSZ - 2) { |
|
468
|
8 |
0 |
if (git_path_isdir(pathbuf->ptr) == false) { |
|
471
|
8 |
0 |
if (!memcmp(sstate->short_oid + 2, |
|
475
|
8 |
0 |
if (!sstate->found) { |
|
484
|
0 |
8 |
if (sstate->found > 1) |
|
504
|
0 |
16 |
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, dir_len, GIT_OID_HEXSZ); |
|
|
0 |
16 |
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, dir_len, GIT_OID_HEXSZ); |
|
505
|
0 |
16 |
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, alloc_len, 3); |
|
|
0 |
16 |
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, alloc_len, 3); |
|
506
|
0 |
16 |
if (git_buf_grow(object_location, alloc_len) < 0) |
|
519
|
0 |
16 |
if (git_buf_put(object_location, (char *)state.short_oid, 3) < 0) |
|
524
|
8 |
8 |
if (git_path_isdir(object_location->ptr) == false) |
|
535
|
0 |
8 |
if (error < 0 && error != GIT_EAMBIGUOUS) |
|
|
0 |
0 |
if (error < 0 && error != GIT_EAMBIGUOUS) |
|
538
|
0 |
8 |
if (!state.found) |
|
542
|
0 |
8 |
if (state.found > 1) |
|
547
|
0 |
8 |
if (error) |
|
551
|
0 |
8 |
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, dir_len, GIT_OID_HEXSZ); |
|
|
0 |
8 |
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, dir_len, GIT_OID_HEXSZ); |
|
552
|
0 |
8 |
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, alloc_len, 2); |
|
|
0 |
8 |
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, alloc_len, 2); |
|
555
|
0 |
8 |
if (git_buf_grow(object_location, alloc_len) < 0) |
|
588
|
383 |
0 |
assert(backend && oid); |
|
|
0 |
383 |
assert(backend && oid); |
|
593
|
0 |
383 |
if (locate_object(&object_path, (loose_backend *)backend, oid) < 0) { |
|
596
|
383 |
0 |
} else if ((error = read_header_loose(&raw, &object_path)) == 0) { |
|
612
|
752 |
0 |
assert(backend && oid); |
|
|
0 |
752 |
assert(backend && oid); |
|
614
|
3 |
749 |
if (locate_object(&object_path, (loose_backend *)backend, oid) < 0) { |
|
617
|
749 |
0 |
} else if ((error = read_loose(&raw, &object_path)) == 0) { |
|
639
|
138 |
0 |
assert(len >= GIT_OID_MINPREFIXLEN && len <= GIT_OID_HEXSZ); |
|
|
0 |
138 |
assert(len >= GIT_OID_MINPREFIXLEN && len <= GIT_OID_HEXSZ); |
|
641
|
122 |
16 |
if (len == GIT_OID_HEXSZ) { |
|
644
|
122 |
0 |
if (!error) |
|
650
|
16 |
0 |
assert(backend && short_oid); |
|
|
0 |
16 |
assert(backend && short_oid); |
|
652
|
8 |
8 |
if ((error = locate_object_short_oid(&object_path, out_oid, |
|
653
|
8 |
0 |
(loose_backend *)backend, short_oid, len)) == 0 && |
|
672
|
4 |
0 |
assert(backend && oid); |
|
|
0 |
4 |
assert(backend && oid); |
|
687
|
0 |
0 |
assert(backend && out && short_id && len >= GIT_OID_MINPREFIXLEN); |
|
|
0 |
0 |
assert(backend && out && short_id && len >= GIT_OID_MINPREFIXLEN); |
|
|
0 |
0 |
assert(backend && out && short_id && len >= GIT_OID_MINPREFIXLEN); |
|
|
0 |
0 |
assert(backend && out && short_id && len >= GIT_OID_MINPREFIXLEN); |
|
706
|
0 |
121 |
if (strlen(ptr) != GIT_OID_HEXSZ+1) |
|
709
|
0 |
121 |
if (ptr[2] != '/') { |
|
714
|
0 |
121 |
if (v < 0) |
|
720
|
2299 |
121 |
for (i = 0; i < 38; i += 2) { |
|
722
|
0 |
2299 |
if (v < 0) |
|
736
|
0 |
121 |
if (filename_to_oid(&oid, path->ptr + state->dir_len) < 0) |
|
748
|
0 |
98 |
if (!git_path_isdir(git_buf_cstr(path))) |
|
762
|
1 |
0 |
assert(backend && cb); |
|
|
0 |
1 |
assert(backend && cb); |
|
768
|
0 |
1 |
if (git_buf_oom(&buf)) |
|
821
|
177 |
0 |
if (backend->fsync_object_files || git_repository__fsync_gitdir) |
|
|
0 |
177 |
if (backend->fsync_object_files || git_repository__fsync_gitdir) |
|
836
|
0 |
63 |
assert(_backend); |
|
841
|
0 |
63 |
if ((error = git_odb__format_object_header(&hdrlen, |
|
846
|
0 |
63 |
GIT_ERROR_CHECK_ALLOC(stream); |
|
857
|
0 |
63 |
backend->object_file_mode) < 0 || |
|
867
|
0 |
63 |
return !stream ? -1 : 0; |
|
885
|
0 |
0 |
if (start_remain && buffer_len) { |
|
|
0 |
0 |
if (start_remain && buffer_len) { |
|
896
|
0 |
0 |
if (buffer_len) { |
|
899
|
0 |
0 |
if ((error = git_zstream_get_output(buffer, &chunk, &stream->zstream)) < 0) |
|
932
|
0 |
0 |
if ((error = parse_header_packlike(hdr, &head_len, data, data_len)) < 0) |
|
935
|
0 |
0 |
if (!git_object_typeisloose(hdr->type)) { |
|
952
|
0 |
0 |
if ((error = git_zstream_set_input(&stream->zstream, |
|
963
|
0 |
0 |
if ((error = git_zstream_get_output(head, &init, &stream->zstream)) < 0 || |
|
|
0 |
0 |
if ((error = git_zstream_get_output(head, &init, &stream->zstream)) < 0 || |
|
967
|
0 |
0 |
if (!git_object_typeisloose(hdr->type)) { |
|
972
|
0 |
0 |
if (init > head_len) { |
|
994
|
0 |
0 |
assert(stream_out && len_out && type_out && _backend && oid); |
|
|
0 |
0 |
assert(stream_out && len_out && type_out && _backend && oid); |
|
|
0 |
0 |
assert(stream_out && len_out && type_out && _backend && oid); |
|
|
0 |
0 |
assert(stream_out && len_out && type_out && _backend && oid); |
|
|
0 |
0 |
assert(stream_out && len_out && type_out && _backend && oid); |
|
1001
|
0 |
0 |
if (locate_object(&object_path, backend, oid) < 0) { |
|
1008
|
0 |
0 |
GIT_ERROR_CHECK_ALLOC(stream); |
|
1011
|
0 |
0 |
GIT_ERROR_CHECK_ALLOC(hash_ctx); |
|
1013
|
0 |
0 |
if ((error = git_hash_ctx_init(hash_ctx)) < 0 || |
|
|
0 |
0 |
if ((error = git_hash_ctx_init(hash_ctx)) < 0 || |
|
1014
|
0 |
0 |
(error = git_futils_mmap_ro_file(&stream->map, object_path.ptr)) < 0 || |
|
1019
|
0 |
0 |
if (!is_zlib_compressed_data(stream->map.data, stream->map.len)) |
|
1024
|
0 |
0 |
if (error < 0) |
|
1037
|
0 |
0 |
if (error < 0) { |
|
1038
|
0 |
0 |
if (stream) { |
|
1043
|
0 |
0 |
if (hash_ctx) { |
|
1065
|
0 |
114 |
if ((error = git_odb__format_object_header(&header_len, |
|
1081
|
0 |
114 |
object_mkdir(&final_path, backend) < 0 || |
|
1086
|
0 |
114 |
if (error < 0) |
|
1100
|
0 |
286 |
if (object_file_name(&path, backend, oid) < 0) |
|
1112
|
0 |
36 |
assert(_backend); |
|
1129
|
36 |
0 |
assert(backend_out && objects_dir); |
|
|
0 |
36 |
assert(backend_out && objects_dir); |
|
1133
|
0 |
36 |
GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, sizeof(loose_backend), objects_dirlen); |
|
|
0 |
36 |
GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, sizeof(loose_backend), objects_dirlen); |
|
1134
|
0 |
36 |
GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, alloclen, 2); |
|
|
0 |
36 |
GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, alloclen, 2); |
|
1136
|
0 |
36 |
GIT_ERROR_CHECK_ALLOC(backend); |
|
1141
|
3 |
33 |
if (backend->objects_dir[backend->objects_dirlen - 1] != '/') |
|
1144
|
35 |
1 |
if (compression_level < 0) |
|
1147
|
36 |
0 |
if (dir_mode == 0) |
|
1150
|
36 |
0 |
if (file_mode == 0) |