summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/cache.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/core/cache.c b/core/cache.c
index 9977cc0c..f027bd3f 100644
--- a/core/cache.c
+++ b/core/cache.c
@@ -58,20 +58,28 @@ void uwsgi_init_cache() {
exit(1);
}
uwsgi.cache_items = (struct uwsgi_cache_item *) mmap(NULL, uwsgi.cache_filesize, PROT_READ | PROT_WRITE, MAP_SHARED, cache_fd, 0);
+ if (uwsgi.cache_items == MAP_FAILED) {
+ uwsgi_log("Unable to mmap %llu bytes.\n", uwsgi.cache_filesize);
+ uwsgi_error("mmap()");
+ exit(1);
+ }
+
uwsgi_cache_fix();
}
else {
- uwsgi.cache_items = (struct uwsgi_cache_item *) mmap(NULL, (sizeof(struct uwsgi_cache_item) * uwsgi.cache_max_items) + (uwsgi.cache_blocksize * uwsgi.cache_max_items), PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
+ ssize_t cache_size = (sizeof(struct uwsgi_cache_item) * uwsgi.cache_max_items) + (uwsgi.cache_blocksize * uwsgi.cache_max_items);
+ uwsgi.cache_items = (struct uwsgi_cache_item *) mmap(NULL, cache_size, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
+ if (uwsgi.cache_items == MAP_FAILED) {
+ uwsgi_log("Unable to mmap %llu bytes.\n", cache_size);
+ uwsgi_error("mmap()");
+ exit(1);
+ }
int i;
for (i = 0; i < (int) uwsgi.cache_max_items; i++) {
memset(&uwsgi.cache_items[i], 0, sizeof(struct uwsgi_cache_item));
}
}
- if (!uwsgi.cache_items) {
- uwsgi_error("mmap()");
- exit(1);
- }
/*
uwsgi.cache = mmap(NULL, uwsgi.cache_blocksize * uwsgi.cache_max_items, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);