Fix audio_driver initialisation to avoid problem with uninitialised

variables and reduce the memory leakage.


git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/trunk/rdesktop@1355 423420c4-83ab-492f-b58f-81f9feb106b5
This commit is contained in:
Pierre Ossman 2007-01-02 11:39:56 +00:00
parent 0f40bd195e
commit f0c0188404
5 changed files with 23 additions and 13 deletions

View File

@ -342,8 +342,10 @@ alsa_register(char *options)
{ {
static struct audio_driver alsa_driver; static struct audio_driver alsa_driver;
alsa_driver.name = xstrdup("alsa"); memset(&alsa_driver, 0, sizeof(alsa_driver));
alsa_driver.description = xstrdup("ALSA output driver, default device: " DEFAULTDEVICE);
alsa_driver.name = "alsa";
alsa_driver.description = "ALSA output driver, default device: " DEFAULTDEVICE;
alsa_driver.add_fds = alsa_add_fds; alsa_driver.add_fds = alsa_add_fds;
alsa_driver.check_fds = alsa_check_fds; alsa_driver.check_fds = alsa_check_fds;
@ -363,7 +365,7 @@ alsa_register(char *options)
} }
else else
{ {
pcm_name = xstrdup(DEFAULTDEVICE); pcm_name = DEFAULTDEVICE;
} }
return &alsa_driver; return &alsa_driver;

View File

@ -198,8 +198,10 @@ libao_register(char *options)
{ {
static struct audio_driver libao_driver; static struct audio_driver libao_driver;
libao_driver.name = xstrdup("libao"); memset(&libao_driver, 0, sizeof(libao_driver));
libao_driver.description = xstrdup("libao output driver, default device: system dependent");
libao_driver.name = "libao";
libao_driver.description = "libao output driver, default device: system dependent";
libao_driver.add_fds = libao_add_fds; libao_driver.add_fds = libao_add_fds;
libao_driver.check_fds = libao_check_fds; libao_driver.check_fds = libao_check_fds;

View File

@ -319,9 +319,11 @@ oss_play(void)
struct audio_driver * struct audio_driver *
oss_register(char *options) oss_register(char *options)
{ {
oss_driver.name = xstrdup("oss"); memset(&oss_driver, 0, sizeof(oss_driver));
oss_driver.name = "oss";
oss_driver.description = oss_driver.description =
xstrdup("OSS output driver, default device: " DEFAULTDEVICE " or $AUDIODEV"); "OSS output driver, default device: " DEFAULTDEVICE " or $AUDIODEV";
oss_driver.add_fds = oss_add_fds; oss_driver.add_fds = oss_add_fds;
oss_driver.check_fds = oss_check_fds; oss_driver.check_fds = oss_check_fds;
@ -345,7 +347,7 @@ oss_register(char *options)
if (dsp_dev == NULL) if (dsp_dev == NULL)
{ {
dsp_dev = xstrdup(DEFAULTDEVICE); dsp_dev = DEFAULTDEVICE;
} }
} }

View File

@ -294,8 +294,10 @@ sgi_register(char *options)
{ {
static struct audio_driver sgi_driver; static struct audio_driver sgi_driver;
sgi_driver.name = xstrdup("sgi"); memset(&sgi_driver, 0, sizeof(sgi_driver));
sgi_driver.description = xstrdup("SGI output driver");
sgi_driver.name = "sgi";
sgi_driver.description = "SGI output driver";
sgi_driver.add_fds = sgi_add_fds; sgi_driver.add_fds = sgi_add_fds;
sgi_driver.check_fds = sgi_check_fds; sgi_driver.check_fds = sgi_check_fds;

View File

@ -269,9 +269,11 @@ sun_register(char *options)
{ {
static struct audio_driver sun_driver; static struct audio_driver sun_driver;
sun_driver.name = xstrdup("sun"); memset(&sun_driver, 0, sizeof(sun_driver));
sun_driver.name = "sun";
sun_driver.description = sun_driver.description =
xstrdup("SUN/BSD output driver, default device: " DEFAULTDEVICE " or $AUDIODEV"); "SUN/BSD output driver, default device: " DEFAULTDEVICE " or $AUDIODEV";
sun_driver.add_fds = sun_add_fds; sun_driver.add_fds = sun_add_fds;
sun_driver.check_fds = sun_check_fds; sun_driver.check_fds = sun_check_fds;
@ -295,7 +297,7 @@ sun_register(char *options)
if (dsp_dev == NULL) if (dsp_dev == NULL)
{ {
dsp_dev = xstrdup(DEFAULTDEVICE); dsp_dev = DEFAULTDEVICE;
} }
} }