diff --git a/extra/mariabackup/write_filt.cc b/extra/mariabackup/write_filt.cc
index a063381840..7883a77ce9 100644
--- a/extra/mariabackup/write_filt.cc
+++ b/extra/mariabackup/write_filt.cc
@@ -73,8 +73,9 @@ wf_incremental_init(xb_write_filt_ctxt_t *ctxt, char *dst_name,
 
 	ctxt->cursor = cursor;
 
-	/* allocate buffer for incremental backup (4096 pages) */
-	buf_size = (cursor->page_size.physical() / 4 + 1)
+	/* allocate buffer for incremental backup (4096 pages),
+	plus eventual space for align for UNIV_PAGE_SIZE_MAX */
+	buf_size = (cursor->page_size.physical() / 4 + (UNIV_PAGE_SIZE_MAX/cursor->page_size.physical()))
 		* cursor->page_size.physical();
 	cp->delta_buf_base = static_cast<byte *>(malloc(buf_size));
 	memset(cp->delta_buf_base, 0, buf_size);
diff --git a/extra/mariabackup/xtrabackup.cc b/extra/mariabackup/xtrabackup.cc
index 0027de960c..86cd0d1b32 100644
--- a/extra/mariabackup/xtrabackup.cc
+++ b/extra/mariabackup/xtrabackup.cc
@@ -376,7 +376,13 @@ datafiles_iter_new(fil_system_t *f_system)
 	datafiles_iter_t *it;
 
 	it = static_cast<datafiles_iter_t *>(malloc(sizeof(datafiles_iter_t)));
-	pthread_mutex_init(&it->mutex, NULL);
+	int res = pthread_mutex_init(&it->mutex, NULL);
+	if (res) {
+		msg("Not enough resources [%d] \n", res);
+		xb_a( res == 0 );
+		free(it);
+		return NULL;
+	}
 
 	it->system = f_system;
 	it->space = NULL;
@@ -392,7 +398,12 @@ datafiles_iter_next(datafiles_iter_t *it)
 {
 	fil_node_t *new_node;
 
-	pthread_mutex_lock(&it->mutex);
+	int res = pthread_mutex_lock(&it->mutex);
+        if (res) {
+		msg("Not enough resources [%d] \n", res);
+		xb_a( res == 0 );
+		return NULL;
+	}
 
 	if (it->node == NULL) {
 		if (it->started)
