From 89c7eff322c60d78c814693ecb28fa6c65159d3e Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 3 May 2011 14:34:22 +1000 Subject: XIChangeHierarchy: Return Success early if no actual changes are requested. Do the same for negative num_changes. Found by static analyzer. Reported-by: Jeremy Huddleston Signed-off-by: Peter Hutterer Reviewed-by: Jeremy Huddleston (cherry picked from commit cc6feecae23b321952921cf927bc965386844c8c) --- man/XIChangeHierarchy.txt | 3 ++- src/XIHierarchy.c | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/man/XIChangeHierarchy.txt b/man/XIChangeHierarchy.txt index ac667bc..205f40f 100644 --- a/man/XIChangeHierarchy.txt +++ b/man/XIChangeHierarchy.txt @@ -30,7 +30,8 @@ DESCRIPTION XIChangeHierarchy modifies the device hierarchy by creating or removing master devices or changing the attachment of slave devices. If num_changes is non-zero, changes is an array of - XIAnyHierarchyChangeInfo structures. + XIAnyHierarchyChangeInfo structures. If num_changes is equal or less than + zero, XIChangeHierarchy does nothing. XIChangeHierarchy processes changes in order, effective immediately. If an error occurs, processing is aborted and the diff --git a/src/XIHierarchy.c b/src/XIHierarchy.c index d30ea29..09e6f93 100644 --- a/src/XIHierarchy.c +++ b/src/XIHierarchy.c @@ -52,6 +52,9 @@ XIChangeHierarchy(Display* dpy, if (_XiCheckExtInit(dpy, XInput_2_0, info) == -1) return (NoSuchExtension); + if (num_changes <= 0) + return Success; + GetReq(XIChangeHierarchy, req); req->reqType = info->codes->major_opcode; req->ReqType = X_XIChangeHierarchy; -- cgit v1.2.3