I've actually got a better idea. Instead of checking the user id, we can
use XDG_RUNTIME_DIR as a base for the wav file. So something like
$XDG_RUNTIME_DIR/speech-dispatcher. That will be cleaned up when the
user logs out, and nobody then knows that another user is using speech-
dispatcher's generic synth mechanism. Probably not really a security
issue, but is still cleaner as this file is temporary for only the
logged in user, and only for their session.

I'll go ahead and implement this unless you have an objection.

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to speech-dispatcher in Ubuntu.
https://bugs.launchpad.net/bugs/1291105

Title:
  After using spd-say (with pico TTS) with the root account, spd-say
  stops working for users

Status in “speech-dispatcher” package in Ubuntu:
  New

Bug description:
  The command definition (GenericExecuteSynth) in /etc/speech-
  dispatcher/modules/pico-generic.conf use a fixed file name for the
  wave file ($TMPDIR/pico.wav):

  GenericExecuteSynth \
  "pico2wave -w $TMPDIR/pico.wav -l $VOICE \'$DATA\' && $PLAY_COMMAND 
$TMPDIR/pico.wav

  If you use spd-say or a speech dispatcher enabled application with
  root, it will create the pico.wav file owned by root with restricted
  permissions.

  If you try to use spd-say with a different user, it will then fail,
  failing to access the /tmp/pico.wav file.

  A solution would be to create a temporary file per user ID:

  GenericExecuteSynth \
  "USERID=`id -u` && umask 077 && pico2wave -w $TMPDIR/pico-$USERID.wav -l 
$VOICE \'$DATA\' && $PLAY_COMMAND $TMPDIR/pico-$USERID.wav"

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/speech-dispatcher/+bug/1291105/+subscriptions

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to