From c264eb3be9b64a2de132b8e19e6e2529ba5ce22e Mon Sep 17 00:00:00 2001 From: Jan Friesse Date: Wed, 12 Jun 2013 16:06:08 +0200 Subject: [PATCH] Handle errors when getting SC_PAGESIZE Signed-off-by: Jan Friesse Reviewed-by: Fabio M. Di Nitto --- lib/cpg.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/cpg.c b/lib/cpg.c index 84084664..a7dad335 100644 --- a/lib/cpg.c +++ b/lib/cpg.c @@ -736,6 +736,7 @@ memory_map (char *path, const char *file, void **buf, size_t bytes) int32_t i; size_t written; size_t page_size; + long int sysconf_page_size; snprintf (path, PATH_MAX, "/dev/shm/%s", file); @@ -752,7 +753,11 @@ memory_map (char *path, const char *file, void **buf, size_t bytes) if (res == -1) { goto error_close_unlink; } - page_size = (size_t)sysconf(_SC_PAGESIZE); + sysconf_page_size = sysconf(_SC_PAGESIZE); + if (sysconf_page_size <= 0) { + goto error_close_unlink; + } + page_size = sysconf_page_size; buffer = malloc (page_size); if (buffer == NULL) { goto error_close_unlink;