commit e40b19ed24abd35fd232c5f269036e8ad0cafe67 from: Stefan Sperling date: Mon Jan 06 16:16:51 2020 UTC fix reading ref deltas with GOT_PACK_NO_MMAP builds commit - fe558a04addf51f90a50aef5e0e8405c26873f9b commit + e40b19ed24abd35fd232c5f269036e8ad0cafe67 blob - 76e93296facb5030262cde3a6498b92753b2c796 blob + a9b1b6eb48b0924daa65c5a355d80f0d8ad91a14 --- lib/pack.c +++ lib/pack.c @@ -803,9 +803,6 @@ resolve_ref_delta(struct got_delta_chain *deltas, stru if (delta_offset + tslen >= pack->filesize) return got_error(GOT_ERR_PACK_OFFSET); - - if (pack->map == NULL) { - } if (pack->map) { size_t mapoff = delta_offset + tslen; @@ -818,14 +815,14 @@ resolve_ref_delta(struct got_delta_chain *deltas, stru return err; } else { ssize_t n; - delta_data_offset = lseek(pack->fd, 0, SEEK_CUR); - if (delta_data_offset == -1) - return got_error_from_errno("lseek"); n = read(pack->fd, &id, sizeof(id)); if (n < 0) return got_error_from_errno("read"); if (n != sizeof(id)) return got_error(GOT_ERR_BAD_PACKFILE); + delta_data_offset = lseek(pack->fd, 0, SEEK_CUR); + if (delta_data_offset == -1) + return got_error_from_errno("lseek"); err = got_inflate_to_mem_fd(&delta_buf, &delta_len, pack->fd); if (err) return err;