diff options
author | Alan Coopersmith <alan.coopersmith@oracle.com> | 2012-07-30 23:37:06 -0700 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2012-08-05 08:25:03 +1000 |
commit | 7328900042b9c1312aed48753fd6054e64613e4c (patch) | |
tree | c82d8c891c71285b8426d7ec99566fa220adb2a3 /Xi | |
parent | 4dbbcdf64563cb95f83c04b2442cb7e868384264 (diff) |
XIChangeDeviceProperty: free newly allocated prop when SetProperty fails
Reported by parfait 1.0:
Error: Memory leak (CWE 401)
Memory leak of pointer 'prop' allocated with XICreateDeviceProperty(property)
at line 774 of Xi/xiproperty.c in function 'XIChangeDeviceProperty'.
'prop' allocated at line 700 with XICreateDeviceProperty(property).
prop leaks when handler != NULL at line 768
and handler->SetProperty != NULL at line 769
and checkonly != 0 at line 772
and rc != 0 at line 772.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'Xi')
-rw-r--r-- | Xi/xiproperty.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/Xi/xiproperty.c b/Xi/xiproperty.c index ca731042c..4beedcf6d 100644 --- a/Xi/xiproperty.c +++ b/Xi/xiproperty.c @@ -771,6 +771,8 @@ XIChangeDeviceProperty(DeviceIntPtr dev, Atom property, Atom type, &new_value, checkonly); if (checkonly && rc != Success) { free(new_value.data); + if (add) + XIDestroyDeviceProperty(prop); return rc; } } |