Package: udev
Version: 175-7.2
Severity: normal
Tags: patch

Hi,

I've noticed that /lib/udev/keymaps/force-release/* files does not
accept empty lines but the last one.
This is due to the manner /lib/udev/keyboard-force-release.sh is
written:
with an empty line read, scancode == "" and $(($scancode)) provokes an
error.
The issue is still present in experimental package udev_204-2.

Bash accepts $(()) but sh do not. Moreover, sh is called with -e option
so the script keyboard-force-release.sh stops and the real job is never
done, do even the first part of the keymap file is not used for the
final step.

Fix proposition:
handle the empty scancode case:
--- keyboard-force-release.sh.debian    2013-08-27 22:49:16.947684034 +0200
+++ keyboard-force-release.sh   2013-08-27 22:52:52.499674424 +0200
@@ -11,6 +11,7 @@
 
 read attr <"/sys/$1/force_release"
 while read scancode dummy; do
+       [ -z $scancode ] && continue
        case "$scancode" in
                \#*) ;;
                *)

Cheers,
-- 
Sylvain

-- System Information:
Debian Release: jessie/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 3.11.0-rc6+ (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages udev depends on:
ii  debconf [debconf-2.0]  1.5.50
ii  libc6                  2.17-92
ii  libselinux1            2.1.13-2
ii  libudev0               175-7.2
ii  lsb-base               4.1+Debian12
ii  procps                 1:3.3.4-2
ii  util-linux             2.20.1-5.5

Versions of packages udev recommends:
ii  pciutils  1:3.2.0-3
ii  usbutils  1:007-2

udev suggests no packages.

-- debconf information:
  udev/new_kernel_needed: false
  udev/title/upgrade:
  udev/reboot_needed:
  udev/sysfs_deprecated_incompatibility:
--- keyboard-force-release.sh.debian	2013-08-27 22:49:16.947684034 +0200
+++ keyboard-force-release.sh	2013-08-27 22:52:52.499674424 +0200
@@ -11,6 +11,7 @@
 
 read attr <"/sys/$1/force_release"
 while read scancode dummy; do
+	[ -z $scancode ] && continue
 	case "$scancode" in
 		\#*) ;;
 		*)

Reply via email to