[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#685953: linux: crash on speakup goto operation



Package: linux
Version: 3.2.23-1
Severity: important
Tags: patch

Hello,

Speakup currently has a bug which can lead to a mere crash when using
its goto function:

"
You can reproduce the bug by pressing numpad_insert, numpad_asterisk.
As soon as you start typing a position, for instance 23y,
the system will crash.
"

The attached patch is the upstream fix for it.  It'd be good to have it
for wheezy.

Samuel

-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.0.4 (SMP w/8 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

-- 
Samuel Thibault <samuel.thibault@ens-lyon.org>
 Les roots ne sont plus ce qu'ils étaient...Maintenant il sont dioxinés,
 c'est de la m... ! Avant on les élevaient avec du bon unix mais ça été
 remplacé par des farines industrielles nouvelles technologies (NT).
 -+- JdK in NPC : Exigez un root élevé sous la mère ! -+-
commit 4ea418b8b2fa8a70d0fcc8231b65e67b3a72984b
Author: Christopher Brannon <chris@the-brannons.com>
Date:   Sat Jun 16 16:55:20 2012 -0500

    Staging: speakup: fix an improperly-declared variable.
    
    A local static variable was declared as a pointer to a string
    constant.  We're assigning to the underlying memory, so it
    needs to be an array instead.
    
    Signed-off-by: Christopher Brannon <chris@the-brannons.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

diff --git a/drivers/staging/speakup/main.c b/drivers/staging/speakup/main.c
index 92b34e2..40e2488 100644
--- a/drivers/staging/speakup/main.c
+++ b/drivers/staging/speakup/main.c
@@ -1854,7 +1854,7 @@ static void speakup_bits(struct vc_data *vc)
 
 static int handle_goto(struct vc_data *vc, u_char type, u_char ch, u_short key)
 {
-	static u_char *goto_buf = "\0\0\0\0\0\0";
+	static u_char goto_buf[8];
 	static int num;
 	int maxlen, go_pos;
 	char *cp;

Reply to: