commit 3a11398b2a1b600f235c8a856af966f671c58907 from: Stefan Sperling date: Thu Feb 21 13:15:33 2019 UTC more specific mmap(2) failure checks commit - 81273528436d00b3a24332dcfe76e5b3f9666363 commit + 3a11398b2a1b600f235c8a856af966f671c58907 blob - ca197e120b16be58b601263b8ccce6b5974437a7 blob + 92c3db02a3b927ecdfefca331cf2190b279536a3 --- lib/pack.c +++ lib/pack.c @@ -394,8 +394,13 @@ got_packidx_open(struct got_packidx **packidx, const c #ifndef GOT_PACK_NO_MMAP p->map = mmap(NULL, p->len, PROT_READ, MAP_PRIVATE, p->fd, 0); - if (p->map == MAP_FAILED) + if (p->map == MAP_FAILED) { + if (errno != ENOMEM) { + err = got_error_from_errno(); + goto done; + } p->map = NULL; /* fall back to read(2) */ + } #endif err = got_packidx_init_hdr(p, verify); blob - 18ad2bbd94ad2e7a2b6a810cce67893121ae71e4 blob + 96c0dad04655c98b9dc28daf55f4f01b4cdabb30 --- lib/repository.c +++ lib/repository.c @@ -763,8 +763,13 @@ got_repo_cache_pack(struct got_pack **packp, struct go #ifndef GOT_PACK_NO_MMAP pack->map = mmap(NULL, pack->filesize, PROT_READ, MAP_PRIVATE, pack->fd, 0); - if (pack->map == MAP_FAILED) + if (pack->map == MAP_FAILED) { + if (errno != ENOMEM) { + err = got_error_from_errno(); + goto done; + } pack->map = NULL; /* fall back to read(2) */ + } #endif done: if (err) {