tags 622100 + confirmed
thanks

Thanks for finding this bug, Rowan. I'll try to upload a new version
soon, and make sure that this bug is fixed.

-Brandon

On Sun, 10 Apr 2011 19:08:57 +1000
Rowan Vince <[email protected]> wrote:

> Package: xevil
> Version: 2.02r2-9
> Tags: patch
> 
> xevil does not always read X resources correctly for the definition
> of keyboard mappings. This is because of the use of invalid memory in
> the routine Game::process_x_resources(). The "option" char pointer
> points to memory provided by a temporary string object that has gone
> out of scope when "option" is used. This bug is only noticeable for
> certain implementations of STL on the compiler platform. Here is a
> suggested fix:
> 
> --- a/cmn/game.cpp
> +++ b/cmn/game.cpp
> @@ -2254,10 +2254,10 @@ void Game::process_x_resources(int *,char **)
>                strm << "right_" << keysNames[n];
>              else
>                strm << "right_" << keysNames[n] << "_2";
> -            const char *option = strm.str().c_str();
> +            string option = strm.str();
>              
>              // Should we free value??
> -            char *value =
> XGetDefault(ui->get_dpy(0),XEVIL_CLASS,option);
> +            char *value =
> XGetDefault(ui->get_dpy(0),XEVIL_CLASS,option.c_str()); if (value) {
>                KeySym keysym = XStringToKeysym(value);
>                if (keysym != NoSymbol)
> @@ -2273,10 +2273,10 @@ void Game::process_x_resources(int *,char **)
>                strm << "left_" << keysNames[n];
>              else
>                strm << "left_" << keysNames[n] << "_2";
> -            const char *option = strm.str().c_str();
> +            string option = strm.str();
>              
>              // Should we free value??
> -            char *value =
> XGetDefault(ui->get_dpy(0),XEVIL_CLASS,option);
> +            char *value =
> XGetDefault(ui->get_dpy(0),XEVIL_CLASS,option.c_str()); if (value) {
>                KeySym keysym = XStringToKeysym(value);
>                if (keysym != NoSymbol)
> 





-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to