diff mbox

[libdrm] drm/atomic: Refuse to add invalid objects to requests

Message ID 20180307124215.16107-1-daniels@collabora.com (mailing list archive)
State New, archived
Headers show

Commit Message

Daniel Stone March 7, 2018, 12:42 p.m. UTC
Object and property IDs cannot be zero. Prevent them from being added to
the request stream at all, rather than breaking at commit time.

Signed-off-by: Daniel Stone <daniels@collabora.com>
---
 xf86drmMode.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Daniel Vetter March 7, 2018, 4:42 p.m. UTC | #1
On Wed, Mar 07, 2018 at 12:42:15PM +0000, Daniel Stone wrote:
> Object and property IDs cannot be zero. Prevent them from being added to
> the request stream at all, rather than breaking at commit time.
> 
> Signed-off-by: Daniel Stone <daniels@collabora.com>
> ---
>  xf86drmMode.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/xf86drmMode.c b/xf86drmMode.c
> index 15957ffc..bd59ef25 100644
> --- a/xf86drmMode.c
> +++ b/xf86drmMode.c
> @@ -1313,6 +1313,9 @@ int drmModeAtomicAddProperty(drmModeAtomicReqPtr req,
>  	if (!req)
>  		return -EINVAL;
>  
> +	if (object_id == 0 || property_id == 0)
> +		return -EINVAL;

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

... and gives us a perfect spot to gdb into a backtrace and figure out wtf
is going on with drm_hwc :-)
-Daniel

> +
>  	if (req->cursor >= req->size_items) {
>  		drmModeAtomicReqItemPtr new;
>  
> -- 
> 2.14.3
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
Daniel Stone March 7, 2018, 5:20 p.m. UTC | #2
On 7 March 2018 at 16:42, Daniel Vetter <daniel@ffwll.ch> wrote:
> On Wed, Mar 07, 2018 at 12:42:15PM +0000, Daniel Stone wrote:
>> Object and property IDs cannot be zero. Prevent them from being added to
>> the request stream at all, rather than breaking at commit time.
>
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>
> ... and gives us a perfect spot to gdb into a backtrace and figure out wtf
> is going on with drm_hwc :-)

Heh, and pushed now. Thanks Daniel!

Cheers,
Daniel
diff mbox

Patch

diff --git a/xf86drmMode.c b/xf86drmMode.c
index 15957ffc..bd59ef25 100644
--- a/xf86drmMode.c
+++ b/xf86drmMode.c
@@ -1313,6 +1313,9 @@  int drmModeAtomicAddProperty(drmModeAtomicReqPtr req,
 	if (!req)
 		return -EINVAL;
 
+	if (object_id == 0 || property_id == 0)
+		return -EINVAL;
+
 	if (req->cursor >= req->size_items) {
 		drmModeAtomicReqItemPtr new;