summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2021-01-07 17:00:57 +0000
committerGitHub <noreply@github.com>2021-01-07 17:00:57 +0000
commitc6cf7f0e6927f1b264a7dda2467d70b9f744a01f (patch)
treee5901b9e6e103ad0013f4d75ae92632d3aab9e52
parent81c98af777329817827609a90462d8b2fd4a845b (diff)
parentff6f675495083d9792b8d54457e40564f3d5bd51 (diff)
downloadlibgit2-c6cf7f0e6927f1b264a7dda2467d70b9f744a01f.tar.gz
Merge pull request #5769 from lhchavez/pwrite-pread
Use `p_pwrite`/`p_pread` consistently throughout the codebase
-rw-r--r--src/indexer.c4
-rw-r--r--src/midx.c7
-rw-r--r--src/pack.c3
3 files changed, 3 insertions, 11 deletions
diff --git a/src/indexer.c b/src/indexer.c
index ba82d716d..d546888cc 100644
--- a/src/indexer.c
+++ b/src/indexer.c
@@ -656,7 +656,6 @@ static int append_to_pack(git_indexer *idx, const void *data, size_t size)
size_t page_offset;
off64_t page_start;
off64_t current_size = idx->pack->mwf.size;
- int fd = idx->pack->mwf.fd;
int error;
if (!size)
@@ -673,8 +672,7 @@ static int append_to_pack(git_indexer *idx, const void *data, size_t size)
page_offset = new_size % mmap_alignment;
page_start = new_size - page_offset;
- if (p_lseek(fd, page_start + mmap_alignment - 1, SEEK_SET) < 0 ||
- p_write(idx->pack->mwf.fd, data, 1) < 0) {
+ if (p_pwrite(idx->pack->mwf.fd, data, 1, page_start + mmap_alignment - 1) < 0) {
git_error_set(GIT_ERROR_OS, "cannot extend packfile '%s'", idx->pack->pack_name);
return -1;
}
diff --git a/src/midx.c b/src/midx.c
index ee93b03c1..0eff2e714 100644
--- a/src/midx.c
+++ b/src/midx.c
@@ -353,12 +353,7 @@ bool git_midx_needs_refresh(
return true;
}
- if (p_lseek(fd, -GIT_OID_RAWSZ, SEEK_END) < 0) {
- p_close(fd);
- return true;
- }
-
- bytes_read = p_read(fd, &idx_checksum, GIT_OID_RAWSZ);
+ bytes_read = p_pread(fd, &idx_checksum, GIT_OID_RAWSZ, st.st_size - GIT_OID_RAWSZ);
p_close(fd);
if (bytes_read != GIT_OID_RAWSZ)
diff --git a/src/pack.c b/src/pack.c
index 30b1464b6..5d284ca9e 100644
--- a/src/pack.c
+++ b/src/pack.c
@@ -1130,8 +1130,7 @@ static int packfile_open_locked(struct git_pack_file *p)
/* Verify the pack matches its index. */
if (p->num_objects != ntohl(hdr.hdr_entries) ||
- p_lseek(p->mwf.fd, p->mwf.size - GIT_OID_RAWSZ, SEEK_SET) == -1 ||
- p_read(p->mwf.fd, sha1.id, GIT_OID_RAWSZ) < 0)
+ p_pread(p->mwf.fd, sha1.id, GIT_OID_RAWSZ, p->mwf.size - GIT_OID_RAWSZ) < 0)
goto cleanup;
idx_sha1 = ((unsigned char *)p->index_map.data) + p->index_map.len - 40;