summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2011-05-03 14:34:22 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2011-06-07 13:28:27 +1000
commit89c7eff322c60d78c814693ecb28fa6c65159d3e (patch)
tree423c8d5e296edf0bec8a8be8413d386bb84891ce
parent7c6003718458ede0542233a213e05d67731d3e28 (diff)
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 <jeremyhu@apple.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> (cherry picked from commit cc6feecae23b321952921cf927bc965386844c8c)
-rw-r--r--man/XIChangeHierarchy.txt3
-rw-r--r--src/XIHierarchy.c3
2 files changed, 5 insertions, 1 deletions
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;