| 12345678910111213141516171819202122232425 |
- Fix the buffer size passed to the EVIOCGBIT ioctl; patch provided by
- Sebastian Siewior, see
- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=499414 and
- http://userweb.kernel.org/~dtor/eviocgbit-bug.html
- --- joystick-20051019.org/utils/evtest.c 2005-02-06 14:51:42.000000000 +0100
- +++ joystick-20051019/utils/evtest.c 2008-09-18 16:01:57.000000000 +0200
- @@ -333,14 +333,14 @@
- printf("Input device name: \"%s\"\n", name);
-
- memset(bit, 0, sizeof(bit));
- - ioctl(fd, EVIOCGBIT(0, EV_MAX), bit[0]);
- + ioctl(fd, EVIOCGBIT(0, sizeof(bit[0])), bit[0]);
- printf("Supported events:\n");
-
- for (i = 0; i < EV_MAX; i++)
- if (test_bit(i, bit[0])) {
- printf(" Event type %d (%s)\n", i, events[i] ? events[i] : "?");
- if (!i) continue;
- - ioctl(fd, EVIOCGBIT(i, KEY_MAX), bit[i]);
- + ioctl(fd, EVIOCGBIT(i, sizeof(bit[0])), bit[i]);
- for (j = 0; j < KEY_MAX; j++)
- if (test_bit(j, bit[i])) {
- printf(" Event code %d (%s)\n", j, names[i] ? (names[i][j] ? names[i][j] : "?") : "?");
|