diff options
author | Junio C Hamano <gitster@pobox.com> | 2016-03-10 11:13:46 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-03-10 11:13:46 -0800 |
commit | 80047fa084f994969d42338bc3fbbb89e7d957d6 (patch) | |
tree | 7835a193de3ad2ee6d883ce3bba1d8f1acc9ef73 /cache.h | |
parent | 0e58b47d153a90d80518ef35c53ffb244ed4ecd6 (diff) | |
parent | 7465feba513a8bd3d47f27630ccc9ab7e82d916c (diff) | |
download | git-80047fa084f994969d42338bc3fbbb89e7d957d6.tar.gz |
Merge branch 'jk/pack-idx-corruption-safety' into maint
The code to read the pack data using the offsets stored in the pack
idx file has been made more carefully check the validity of the
data in the idx.
* jk/pack-idx-corruption-safety:
sha1_file.c: mark strings for translation
use_pack: handle signed off_t overflow
nth_packed_object_offset: bounds-check extended offset
t5313: test bounds-checks of corrupted/malicious pack/idx files
Diffstat (limited to 'cache.h')
-rw-r--r-- | cache.h | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -1368,6 +1368,16 @@ extern void clear_delta_base_cache(void); extern struct packed_git *add_packed_git(const char *path, size_t path_len, int local); /* + * Make sure that a pointer access into an mmap'd index file is within bounds, + * and can provide at least 8 bytes of data. + * + * Note that this is only necessary for variable-length segments of the file + * (like the 64-bit extended offset table), as we compare the size to the + * fixed-length parts when we open the file. + */ +extern void check_pack_index_ptr(const struct packed_git *p, const void *ptr); + +/* * Return the SHA-1 of the nth object within the specified packfile. * Open the index if it is not already open. The return value points * at the SHA-1 within the mmapped index. Return NULL if there is an |