[PATCH] dix: fix error logging occuring in signal context of GetTouchEvents

Peter Hutterer peter.hutterer at who-t.net
Wed Jan 9 14:54:34 PST 2013


On Wed, Jan 09, 2013 at 07:32:19PM +0100, Benjamin Tissoires wrote:
> GetTouchEvents is usually called in a signal context.
> Calling ErrorF for the error messages leads to X complaining about log:
> 
> (EE) BUG: triggered 'if (inSignalContext)'
> (EE) BUG: log.c:484 in LogVMessageVerb()
> (EE) Warning: attempting to log data in a signal unsafe manner while in signal context.
> Please update to check inSignalContext and/or use LogMessageVerbSigSafe() or ErrorFSigSafe().
> The offending log format message is:
> %s: Attempted to start touch without x/y (driver bug)
> 
> Signed-off-by: Benjamin Tissoires <benjamin.tissoires at gmail.com>

applied, thanks.

Cheers,
   Peter


> ---
>  dix/getevents.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/dix/getevents.c b/dix/getevents.c
> index 3d41e1e..a1e1938 100644
> --- a/dix/getevents.c
> +++ b/dix/getevents.c
> @@ -1895,16 +1895,16 @@ GetTouchEvents(InternalEvent *events, DeviceIntPtr dev, uint32_t ddx_touchid,
>          if (!mask_in ||
>              !valuator_mask_isset(mask_in, 0) ||
>              !valuator_mask_isset(mask_in, 1)) {
> -            ErrorF("%s: Attempted to start touch without x/y (driver bug)\n",
> -                   dev->name);
> +            ErrorFSigSafe("%s: Attempted to start touch without x/y "
> +                          "(driver bug)\n", dev->name);
>              return 0;
>          }
>          break;
>      case XI_TouchUpdate:
>          event->type = ET_TouchUpdate;
>          if (!mask_in || valuator_mask_num_valuators(mask_in) <= 0) {
> -            ErrorF("%s: TouchUpdate with no valuators? Driver bug\n",
> -                   dev->name);
> +            ErrorFSigSafe("%s: TouchUpdate with no valuators? Driver bug\n",
> +                          dev->name);
>          }
>          break;
>      case XI_TouchEnd:
> -- 
> 1.8.0.2
> 


More information about the xorg-devel mailing list