minigbm: add more error handling especially for oom
This change also fixes a potential prime_fd leak in mediatek backend.
BUG=b:201110412
TEST=CQ
Change-Id: Ia3e10c94b536f83ecfb6580666103fe654bbc616
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3188852
Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>
Tested-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Chia-I Wu <olv@google.com>
diff --git a/virtgpu_cross_domain.c b/virtgpu_cross_domain.c
index 7f26612..c2e85af 100644
--- a/virtgpu_cross_domain.c
+++ b/virtgpu_cross_domain.c
@@ -243,7 +243,15 @@
return -ENOTSUP;
priv = calloc(1, sizeof(*priv));
+ if (!priv)
+ return -ENOMEM;
+
priv->metadata_cache = drv_array_init(sizeof(struct bo_metadata));
+ if (!priv->metadata_cache) {
+ ret = -ENOMEM;
+ goto free_private;
+ }
+
priv->ring_addr = MAP_FAILED;
drv->priv = priv;