aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Sibiller <uli42@gmx.de>2021-06-20 13:16:29 +0200
committerUlrich Sibiller <uli42@gmx.de>2021-07-05 22:20:07 +0200
commit9874023096b1940ef3df0756a0ec81d5d57e09c2 (patch)
tree8383ca6b3eabf6e3764ae205e5adc08b4fd68151
parent5da2be394a3961c7a6d96a3e117ffc434fe34827 (diff)
downloadnx-libs-9874023096b1940ef3df0756a0ec81d5d57e09c2.tar.gz
nx-libs-9874023096b1940ef3df0756a0ec81d5d57e09c2.tar.bz2
nx-libs-9874023096b1940ef3df0756a0ec81d5d57e09c2.zip
Clipboard.c: check for invalid index
We only need to check this in nxagentHandleSelectionClearFromXServerByIndex, so we can simplify nxagentHandleSelectionClearFromXServerByAtom.
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Clipboard.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c b/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c
index 4a0bf9cb5..3b08c1133 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c
@@ -882,6 +882,14 @@ void nxagentHandleSelectionClearFromXServerByIndex(int index)
fprintf(stderr, "%s: SelectionClear event for selection index [%u].\n", __func__, index);
#endif
+ if (index == -1)
+ {
+ #ifdef DEBUG
+ fprintf(stderr, "%s: ignoring index -1 - doing nothing.\n", __func__);
+ #endif
+ return;
+ }
+
if (!agentClipboardInitialized)
{
#ifdef DEBUG
@@ -931,11 +939,7 @@ void nxagentHandleSelectionClearFromXServerByAtom(XlibAtom sel)
fprintf(stderr, "---------\n%s: SelectionClear event for remote selection atom [%lu][%s].\n", __func__, sel, NameForRemoteAtom(sel));
#endif
- int index = nxagentFindRemoteSelectionIndex(sel);
- if (index != -1)
- {
- nxagentHandleSelectionClearFromXServerByIndex(index);
- }
+ nxagentHandleSelectionClearFromXServerByIndex(nxagentFindRemoteSelectionIndex(sel));
}
void nxagentHandleSelectionClearFromXServer(XEvent *X)