From 61d3944ce6aac451575f66867916e45911fde962 Mon Sep 17 00:00:00 2001 From: short <> Date: Wed, 17 Sep 2003 12:53:08 +0000 Subject: [PATCH] Use 'MAP_NORESERVE' for empty memory ranges allocation. --- src/install/acquire/cabinet.c | 8 +++++++- src/libcaptive/cc/sharedcachemap.c | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/install/acquire/cabinet.c b/src/install/acquire/cabinet.c index d9ba35c..0e9a790 100644 --- a/src/install/acquire/cabinet.c +++ b/src/install/acquire/cabinet.c @@ -175,7 +175,13 @@ struct acquire_cabinet *r; captive_new(r); if (MAP_FAILED==(r->base=mmap( - NULL,CAPTIVE_ROUND_UP64(file_info->size,getpagesize()),PROT_READ|PROT_WRITE,MAP_ANONYMOUS|MAP_PRIVATE,-1,0))) { + NULL, /* start */ + CAPTIVE_ROUND_UP64(file_info->size,getpagesize()), /* length */ + PROT_READ|PROT_WRITE, + MAP_ANONYMOUS|MAP_PRIVATE /* flags */ + |MAP_NORESERVE, /* We will not probably not read the whole cabinet. */ + -1, /* fd; ignored due to MAP_ANONYMOUS */ + 0))) { /* offset; ignored due to MAP_ANONYMOUS */ g_free(r); g_return_val_if_reached(NULL); } diff --git a/src/libcaptive/cc/sharedcachemap.c b/src/libcaptive/cc/sharedcachemap.c index 1cb6541..8b68ac7 100644 --- a/src/libcaptive/cc/sharedcachemap.c +++ b/src/libcaptive/cc/sharedcachemap.c @@ -196,7 +196,8 @@ int errint; NULL, /* start */ PAGE_SIZE+size_new+PAGE_SIZE, /* length; leading and trailing boundary check pages */ PROT_READ|PROT_WRITE, /* prot; read/write must be possible although write is not guaranteed to be flushed yet */ - MAP_PRIVATE|MAP_ANONYMOUS, /* flags */ + MAP_PRIVATE|MAP_ANONYMOUS /* flags */ + |MAP_NORESERVE, /* At least ext2fsd maps the whole disk. */ -1, /* fd; ignored due to MAP_ANONYMOUS */ 0); /* offset; ignored due to MAP_ANONYMOUS */ if (base==MAP_FAILED) -- 1.8.3.1