diff options
author | Oliver McFadden <oliver.mcfadden@nokia.com> | 2010-04-20 05:37:39 +0300 |
---|---|---|
committer | Oliver McFadden <oliver.mcfadden@nokia.com> | 2010-04-20 09:12:30 +0300 |
commit | 6b5c0401e2b8fe1637f937739e822a33206ef1ac (patch) | |
tree | d627f31b9b2d6db86ec3f75e9104fec07d515a53 /src/evdev.c | |
parent | Don't set pEvdev->rel for mouse wheel events (diff) | |
download | xf86-input-evdev-6b5c0401e2b8fe1637f937739e822a33206ef1ac.tar.gz xf86-input-evdev-6b5c0401e2b8fe1637f937739e822a33206ef1ac.tar.bz2 xf86-input-evdev-6b5c0401e2b8fe1637f937739e822a33206ef1ac.zip |
evdev: leaked_storage: free memory allocated from the xf86Option code.
Signed-off-by: Oliver McFadden <oliver.mcfadden@nokia.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'src/evdev.c')
-rw-r--r-- | src/evdev.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/evdev.c b/src/evdev.c index d133870..e4ca84e 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -1235,6 +1235,7 @@ EvdevAddAbsClass(DeviceIntPtr device) pEvdev->flags |= EVDEV_RELATIVE_MODE; else xf86Msg(X_INFO, "%s: unknown mode, use default\n", pInfo->name); + xfree(mode); } return Success; @@ -1370,15 +1371,16 @@ EvdevInitButtonMapping(InputInfoPtr pInfo) /* Check for user-defined button mapping */ if ((mapping = xf86CheckStrOption(pInfo->options, "ButtonMapping", NULL))) { - char *s = " "; + char *map, *s = " "; int btn = 0; xf86Msg(X_CONFIG, "%s: ButtonMapping '%s'\n", pInfo->name, mapping); + map = mapping; while (s && *s != '\0' && nbuttons < EVDEV_MAXBUTTONS) { - btn = strtol(mapping, &s, 10); + btn = strtol(map, &s, 10); - if (s == mapping || btn < 0 || btn > EVDEV_MAXBUTTONS) + if (s == map || btn < 0 || btn > EVDEV_MAXBUTTONS) { xf86Msg(X_ERROR, "%s: ... Invalid button mapping. Using defaults\n", @@ -1388,8 +1390,9 @@ EvdevInitButtonMapping(InputInfoPtr pInfo) } pEvdev->btnmap[nbuttons++] = btn; - mapping = s; + map = s; } + xfree(mapping); } for (i = nbuttons; i < ArrayLength(pEvdev->btnmap); i++) @@ -2071,6 +2074,7 @@ EvdevPreInit(InputDriverPtr drv, IDevPtr dev, int flags) num_calibration = sscanf(str, "%d %d %d %d", &calibration[0], &calibration[1], &calibration[2], &calibration[3]); + xfree(str); if (num_calibration == 4) EvdevSetCalibration(pInfo, num_calibration, calibration); else |