Commit Diff


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) {