Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
nx-libs
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
dimbor
nx-libs
Commits
85a28a68
Commit
85a28a68
authored
Oct 09, 2018
by
Ulrich Sibiller
Committed by
Mike Gabriel
Oct 27, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Clipboard.c: add macro for safe XFree calls with ptr clearance
parent
fab6911b
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
18 additions
and
37 deletions
+18
-37
Clipboard.c
nx-X11/programs/Xserver/hw/nxagent/Clipboard.c
+16
-37
Utils.h
nx-X11/programs/Xserver/hw/nxagent/Utils.h
+2
-0
No files found.
nx-X11/programs/Xserver/hw/nxagent/Clipboard.c
View file @
85a28a68
...
@@ -211,9 +211,9 @@ void nxagentPrintClipboardStat(char *header)
...
@@ -211,9 +211,9 @@ void nxagentPrintClipboardStat(char *header)
fprintf
(
stderr
,
"lastServer
\n
"
);
fprintf
(
stderr
,
"lastServer
\n
"
);
fprintf
(
stderr
,
" lastServerRequestor (Window) [0x%x]
\n
"
,
lastServerRequestor
);
fprintf
(
stderr
,
" lastServerRequestor (Window) [0x%x]
\n
"
,
lastServerRequestor
);
if
(
s
)
XFree
(
s
);
s
=
XGetAtomName
(
nxagentDisplay
,
lastServerProperty
);
SAFE_
XFree
(
s
);
s
=
XGetAtomName
(
nxagentDisplay
,
lastServerProperty
);
fprintf
(
stderr
,
" lastServerProperty (Atom) [% 4d][%s]
\n
"
,
lastServerProperty
,
s
);
fprintf
(
stderr
,
" lastServerProperty (Atom) [% 4d][%s]
\n
"
,
lastServerProperty
,
s
);
if
(
s
)
XFree
(
s
);
s
=
XGetAtomName
(
nxagentDisplay
,
lastServerTarget
);
SAFE_
XFree
(
s
);
s
=
XGetAtomName
(
nxagentDisplay
,
lastServerTarget
);
fprintf
(
stderr
,
" lastServerTarget (Atom) [% 4d][%s]
\n
"
,
lastServerTarget
,
s
);
fprintf
(
stderr
,
" lastServerTarget (Atom) [% 4d][%s]
\n
"
,
lastServerTarget
,
s
);
fprintf
(
stderr
,
" lastServerTime (Time) [%u]
\n
"
,
lastServerTime
);
fprintf
(
stderr
,
" lastServerTime (Time) [%u]
\n
"
,
lastServerTime
);
...
@@ -246,18 +246,18 @@ void nxagentPrintClipboardStat(char *header)
...
@@ -246,18 +246,18 @@ void nxagentPrintClipboardStat(char *header)
fprintf
(
stderr
,
" CurrentSelections[].window [0x%x]
\n
"
,
CurrentSelections
[
nxagentClipboardSelection
].
window
);
fprintf
(
stderr
,
" CurrentSelections[].window [0x%x]
\n
"
,
CurrentSelections
[
nxagentClipboardSelection
].
window
);
fprintf
(
stderr
,
"Atoms (server side)
\n
"
);
fprintf
(
stderr
,
"Atoms (server side)
\n
"
);
if
(
s
)
XFree
(
s
);
s
=
XGetAtomName
(
nxagentDisplay
,
serverTARGETS
);
SAFE_
XFree
(
s
);
s
=
XGetAtomName
(
nxagentDisplay
,
serverTARGETS
);
fprintf
(
stderr
,
" serverTARGETS [% 4d][%s]
\n
"
,
serverTARGETS
,
validateString
(
s
));
fprintf
(
stderr
,
" serverTARGETS [% 4d][%s]
\n
"
,
serverTARGETS
,
validateString
(
s
));
if
(
s
)
XFree
(
s
);
s
=
XGetAtomName
(
nxagentDisplay
,
serverTEXT
);
SAFE_
XFree
(
s
);
s
=
XGetAtomName
(
nxagentDisplay
,
serverTEXT
);
fprintf
(
stderr
,
" serverTEXT [% d][%s]
\n
"
,
serverTEXT
,
s
);
fprintf
(
stderr
,
" serverTEXT [% d][%s]
\n
"
,
serverTEXT
,
s
);
if
(
s
)
XFree
(
s
);
s
=
XGetAtomName
(
nxagentDisplay
,
serverUTF8_STRING
);
SAFE_
XFree
(
s
);
s
=
XGetAtomName
(
nxagentDisplay
,
serverUTF8_STRING
);
fprintf
(
stderr
,
" serverUTF8_STRING [% 4d][%s]
\n
"
,
serverUTF8_STRING
,
s
);
fprintf
(
stderr
,
" serverUTF8_STRING [% 4d][%s]
\n
"
,
serverUTF8_STRING
,
s
);
if
(
s
)
XFree
(
s
);
s
=
XGetAtomName
(
nxagentDisplay
,
serverCutProperty
);
SAFE_
XFree
(
s
);
s
=
XGetAtomName
(
nxagentDisplay
,
serverCutProperty
);
fprintf
(
stderr
,
" serverCutProperty [% 4d][%s]
\n
"
,
serverCutProperty
,
s
);
fprintf
(
stderr
,
" serverCutProperty [% 4d][%s]
\n
"
,
serverCutProperty
,
s
);
if
(
s
)
XFree
(
s
);
s
=
XGetAtomName
(
nxagentDisplay
,
nxagentClipboardAtom
);
SAFE_
XFree
(
s
);
s
=
XGetAtomName
(
nxagentDisplay
,
nxagentClipboardAtom
);
fprintf
(
stderr
,
" nxagentClipboardAtom [% 4d][%s]
\n
"
,
nxagentClipboardAtom
,
s
);
fprintf
(
stderr
,
" nxagentClipboardAtom [% 4d][%s]
\n
"
,
nxagentClipboardAtom
,
s
);
if
(
s
)
XFree
(
s
);
s
=
XGetAtomName
(
nxagentDisplay
,
nxagentTimestampAtom
);
SAFE_
XFree
(
s
);
s
=
XGetAtomName
(
nxagentDisplay
,
nxagentTimestampAtom
);
fprintf
(
stderr
,
" nxagentTimestampAtom [% 4d][%s]
\n
"
,
nxagentTimestampAtom
,
s
);
fprintf
(
stderr
,
" nxagentTimestampAtom [% 4d][%s]
\n
"
,
nxagentTimestampAtom
,
s
);
fprintf
(
stderr
,
"Atoms (inside nxagent)
\n
"
);
fprintf
(
stderr
,
"Atoms (inside nxagent)
\n
"
);
...
@@ -270,7 +270,7 @@ void nxagentPrintClipboardStat(char *header)
...
@@ -270,7 +270,7 @@ void nxagentPrintClipboardStat(char *header)
fprintf
(
stderr
,
"
\\
------------------------------------------------------------------------------
\n
"
);
fprintf
(
stderr
,
"
\\
------------------------------------------------------------------------------
\n
"
);
if
(
s
)
XFree
(
s
);
s
=
NULL
;
SAFE_XFree
(
s
)
;
#endif
#endif
}
}
...
@@ -460,10 +460,7 @@ FIXME: Do we need this?
...
@@ -460,10 +460,7 @@ FIXME: Do we need this?
fprintf(stderr, "SelectionRequest event aborting sele=[%s] ext target=[%s] Atom size is [%d]\n",
fprintf(stderr, "SelectionRequest event aborting sele=[%s] ext target=[%s] Atom size is [%d]\n",
validateString(NameForAtom(X->xselectionrequest.selection)), strTarget, sizeof(Atom));
validateString(NameForAtom(X->xselectionrequest.selection)), strTarget, sizeof(Atom));
if (strTarget != NULL)
SAFE_XFree(strTarget);
{
XFree(strTarget);
}
*/
*/
memset
(
&
eventSelection
,
0
,
sizeof
(
XSelectionEvent
));
memset
(
&
eventSelection
,
0
,
sizeof
(
XSelectionEvent
));
eventSelection
.
property
=
None
;
eventSelection
.
property
=
None
;
...
@@ -843,11 +840,7 @@ void nxagentCollectPropertyEvent(int resource)
...
@@ -843,11 +840,7 @@ void nxagentCollectPropertyEvent(int resource)
lastClientWindowPtr
=
NULL
;
lastClientWindowPtr
=
NULL
;
SetClientSelectionStage
(
None
);
SetClientSelectionStage
(
None
);
if
(
pszReturnData
!=
NULL
)
SAFE_XFree
(
pszReturnData
);
{
XFree
(
pszReturnData
);
}
return
;
return
;
}
}
...
@@ -867,11 +860,7 @@ void nxagentCollectPropertyEvent(int resource)
...
@@ -867,11 +860,7 @@ void nxagentCollectPropertyEvent(int resource)
lastClientWindowPtr
=
NULL
;
lastClientWindowPtr
=
NULL
;
SetClientSelectionStage
(
None
);
SetClientSelectionStage
(
None
);
if
(
pszReturnData
!=
NULL
)
SAFE_XFree
(
pszReturnData
);
{
XFree
(
pszReturnData
);
}
return
;
return
;
}
}
...
@@ -897,11 +886,7 @@ void nxagentCollectPropertyEvent(int resource)
...
@@ -897,11 +886,7 @@ void nxagentCollectPropertyEvent(int resource)
lastClientWindowPtr
=
NULL
;
lastClientWindowPtr
=
NULL
;
SetClientSelectionStage
(
None
);
SetClientSelectionStage
(
None
);
if
(
pszReturnData
!=
NULL
)
SAFE_XFree
(
pszReturnData
);
{
XFree
(
pszReturnData
);
}
return
;
return
;
}
}
...
@@ -940,11 +925,7 @@ void nxagentCollectPropertyEvent(int resource)
...
@@ -940,11 +925,7 @@ void nxagentCollectPropertyEvent(int resource)
lastClientWindowPtr
=
NULL
;
lastClientWindowPtr
=
NULL
;
SetClientSelectionStage
(
None
);
SetClientSelectionStage
(
None
);
if
(
pszReturnData
!=
NULL
)
SAFE_XFree
(
pszReturnData
);
{
XFree
(
pszReturnData
);
}
return
;
return
;
}
}
...
@@ -985,8 +966,7 @@ void nxagentCollectPropertyEvent(int resource)
...
@@ -985,8 +966,7 @@ void nxagentCollectPropertyEvent(int resource)
}
}
}
}
XFree
(
pszReturnData
);
SAFE_XFree
(
pszReturnData
);
pszReturnData
=
NULL
;
}
}
void
nxagentNotifySelection
(
XEvent
*
X
)
void
nxagentNotifySelection
(
XEvent
*
X
)
...
@@ -1122,8 +1102,7 @@ void nxagentNotifySelection(XEvent *X)
...
@@ -1122,8 +1102,7 @@ void nxagentNotifySelection(XEvent *X)
}
}
/*
/*
* XFree(pszReturnData);
* SAFE_XFree(pszReturnData);
* pszReturnData=NULL;
*/
*/
}
}
...
...
nx-X11/programs/Xserver/hw/nxagent/Utils.h
View file @
85a28a68
...
@@ -44,4 +44,6 @@ static inline const char * validateString(const char *str) {
...
@@ -44,4 +44,6 @@ static inline const char * validateString(const char *str) {
return
str
?
str
:
"(null)"
;
return
str
?
str
:
"(null)"
;
}
}
#define SAFE_XFree(what) do {if (what) {XFree(what); what = NULL;}} while (0)
#endif
/* __Utils_H__ */
#endif
/* __Utils_H__ */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment