Просмотр исходного кода

Handle errors when getting SC_PAGESIZE

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
Jan Friesse 12 лет назад
Родитель
Сommit
c264eb3be9
1 измененных файлов с 6 добавлено и 1 удалено
  1. 6 1
      lib/cpg.c

+ 6 - 1
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;