aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXin Li2018-08-13 15:01:04 -0500
committerXin Li2018-08-13 15:01:04 -0500
commit7e606f3709db1bb5c2169c6ba0fefcf5cecef182 (patch)
treeaaa6df35c7281ed3f323ba02e7ed0704379b2a74
parent8b8d0170f74607aa322ec95dbaad759cb89448b6 (diff)
parentcac339c4928075f7c82631b7a298383cd20e366d (diff)
downloadexternal-libdrm-7e606f3709db1bb5c2169c6ba0fefcf5cecef182.tar.gz
external-libdrm-7e606f3709db1bb5c2169c6ba0fefcf5cecef182.tar.xz
external-libdrm-7e606f3709db1bb5c2169c6ba0fefcf5cecef182.zip
Merge stage-dr1-aosp-master into stage-aosp-master
Bug: 112535855 Change-Id: I1f1f2f8f6588c49411186404505841bbca8119a4
-rw-r--r--xf86drmMode.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/xf86drmMode.c b/xf86drmMode.c
index 9a15b5e7..b0ec609b 100644
--- a/xf86drmMode.c
+++ b/xf86drmMode.c
@@ -1250,7 +1250,7 @@ drmModeAtomicReqPtr drmModeAtomicDuplicate(drmModeAtomicReqPtr old)
1250 return NULL; 1250 return NULL;
1251 } 1251 }
1252 memcpy(new->items, old->items, 1252 memcpy(new->items, old->items,
1253 old->size_items * sizeof(*new->items)); 1253 old->cursor * sizeof(*new->items));
1254 } else { 1254 } else {
1255 new->items = NULL; 1255 new->items = NULL;
1256 } 1256 }
@@ -1312,12 +1312,13 @@ int drmModeAtomicAddProperty(drmModeAtomicReqPtr req,
1312 return -EINVAL; 1312 return -EINVAL;
1313 1313
1314 if (req->cursor >= req->size_items) { 1314 if (req->cursor >= req->size_items) {
1315 const uint32_t item_size_inc = getpagesize() / sizeof(*req->items);
1315 drmModeAtomicReqItemPtr new; 1316 drmModeAtomicReqItemPtr new;
1316 1317
1317 req->size_items += 16; 1318 req->size_items += item_size_inc;
1318 new = realloc(req->items, req->size_items * sizeof(*req->items)); 1319 new = realloc(req->items, req->size_items * sizeof(*req->items));
1319 if (!new) { 1320 if (!new) {
1320 req->size_items -= 16; 1321 req->size_items -= item_size_inc;
1321 return -ENOMEM; 1322 return -ENOMEM;
1322 } 1323 }
1323 req->items = new; 1324 req->items = new;