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-05-05 09:10:09 +1000
commitcc6feecae23b321952921cf927bc965386844c8c (patch)
treee1a19b9ecc46d3050fb59de7edadd0df1089c3a8
parentaf65475b1f6b7209750220a74aaad9968d54aaf7 (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>
-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;