1
$Id: HISTORY,v 1.23 2006/06/03 20:24:03 jon Exp $
1
$Id: HISTORY 268 2007-11-10 23:41:22Z jon13 $
3
Version 1.9.1 (stable) 11/10/2007
5
- per a request from Frank B�ttner (fedora maintainer), and in the
6
interest of providing the 'least surprise' for a user, nasd will
7
no longer initialize the mixer settings at start up, by default.
8
The default value of 'InitMixer' is now set to 'NO' in the
11
See https://bugzilla.redhat.com/show_bug.cgi?id=247468 for the
14
- based on patch from Frank B�ttner, nasd will create it's local
15
socket, and libaudio will look for it, in /var/run/nasd/audio*.
16
on Linux systems. In reality, this should probably apply to all
17
'modern' unix systems (Solaris, *BSD, etc), but only Linux is
18
affected by this change now.
20
See https://bugzilla.redhat.com/show_bug.cgi?id=250453 for the bug
23
The downside is that /var/run is not writable by normal users, so
24
if a user is trying to run the nasd server, s/he will get an error
25
about being unable to bind to the socket, and nasd will not start.
26
The workaround is to run nasd with the '-pn' (partial network)
27
option. This way, nasd will bind to a local TCP transport and
28
start successfully even if the local socket transport cannot be
29
initialized (though you will still see the error when nasd
32
Additionally, users on the local host trying to play sounds
33
through a server started this way may need to set their
34
AUDIOSERVER environment variable to 'localhost:0' for example,
35
rather than the default ':0' in order to play sounds.
37
Of course if nasd is started as root at system startup time, then
38
this is not a problem.
40
Version 1.9a (devel) 10/27/2007
42
- this is a possible 1.9.1 (stable) release in a couple weeks.
44
- modify intervalProc to stop/start the timer around AuProcessData()
45
calls, rather than simply disable the signal handler. This should
46
ensure that we never lose a timer signal, and seems to fix the
47
reported nasd hangs under newer linux kernels (2.6.21+).
49
The *BSD folks should make sure everything still works, it
52
- rework signal handling in the voxware (OSS) server. This also
53
allows DIA to block/unblock interrupts at he appropriate times
56
- apply patch from Yarda that corrects a problem with blocking and
57
unblocking signals in IntervalProc() (auvoxware). [jet - this
58
patch was removed in the patches further up]
60
- remove mention of the auvoxware manpage from the filelist (for src
61
packaging), and remove the doc/html/auvoxware.1.html file.
63
- Apply patches from Erik Auerswald:
65
- the recent bug report from a fedora 7 user showed a small bug
66
with the input mixer code: If the input mixer cannot control the
67
input channels a wrong error message is printed. The attached
70
- remove auvoxware.man from the voxware Imakefile
72
- aupanel: add option -interval to synopsis section of man page
74
- add automatic querying of device attributes to aupanel with a
75
default query interval of 10 seconds
77
- make the nasd.conf man page formatting more consistent
79
- more cleanup and removal of old/useless files.
81
- remove useless nas.lsm file.
83
- sync up for copying repository to sourceforge.
85
- Patch from Stefan Huehner:
87
- remove SleepQueue functionality which is apparently not being
90
- remove useless 'register' declarations
92
- convert Swap32Write for K&R to ANSI. Also, define it's buffer
93
pointer as AuUint32 rather than 'long', which was wrong, but
97
Version 1.9 (stable) 04/07/2007
99
- stable 1.9 release. No code changes (other than RELEASE) since
102
- In short: Fixes to several DOS attacks that could be carried out
103
aginst a nasd server, ANSI'fication of most of the server and
104
client code, and significant rework of input and output mixer
105
handling in the voxware (OSS) server.
107
Read below for more detail on the changes since the last stable
111
Version 1.8b (devel) 03/25/2007
113
- 1.8b devel release. Final 1.9 in about 2 weeks, barring any
116
- fix a variety of problems that could result in a denial of
117
service by crashing the nasd server. These attacks were
118
researched by Luigi Auriemma, who also provided a description of
119
the attacks and an exploit program, 'nasbugs'.
121
I have added his emailed report and the test attack code to the
122
nas repository in contrib/nasbugs if you are interested. Thanks
123
to Luigi for finding these problems. It sucked fixing them :)
125
Here is a list of the bugs tested as output by the nasbugs
128
1 = accept_att_local buffer overflow through USL connection
129
2 = server termination through unexistent ID in AddResource
130
3 = bcopy crash caused by integer overflow in ProcAuWriteElement
131
4 = invalid memory pointer caused by big num_actions in ProcAuSetElements
132
5 = another invalid memory pointer caused by big num_actions in
134
6 = invalid memory pointer in compileInputs
135
7 = exploits bug 3 in read mode (requires something playing on
137
8 = NULL pointer caused by too much connections
139
Note on bug #2, X11 display servers should be vulnerable to a
140
DOS of this type as well (causing fatal 'client not in use'
141
errors in AddResource()).
143
Note on bug #8, the nasd server will not be able to accept
144
further client connections when the client table is full, until
145
the rejected clients disconnect their end of the socket and the
146
neccessary fd's are freed up. It's better than coring though.
148
- set the default open modes for the output audio device to
149
write-only, and for the input device, use read-only (already the
152
These can still be changed in the nasd.conf file, if needed.
154
Previously, the default was to open the output device
155
read-write, causing various issues with different
156
hardware/driver configurations. There is no need to open this
157
device read-write anyway.
159
- apply patch from Paul Fox, correcting a typo in auvoxware.c
161
- apply patch from Erik Auerswald
163
"With the attached patch the output and input device can be
164
disabled by specifying an empty string as device name. Yes, when
165
using an empty string for both devices there will be a NAS
166
server that can neither play nor record anything."
169
Version 1.8a (devel) 11/27/2006
171
- Updated the Amd.h (machine definition file) with modern X11
172
(X11R6.8) contents so it can build with Qt and other X11
173
software that makes use of X11's Xmd.h header file. Problem
174
reported by Bernard Leak.
176
- ANSI'fication of DeleteTypes (dia/resource.c) and NoopDDA.
177
Add proper header #includes where needed.
179
- patch from Petr Salinge (via Steve McIntyre) adding GNU/kFreeBSD
182
- Patches from Paul Fox:
184
- allow the specification of a scaling factor to apply to the
187
- add a proper return value in auvoxware.c:initMixer()
189
- mondo indentification of server/*
191
- Applied patches from Stefan Huehner:
193
- marks some read-only string and function parameters as 'const
194
char*' instead of 'char *'. In addition an unused buffer
195
'errfile' from aulog.c was removed. As the two release.h
196
files are generated the NetAudio.tmpl was modified to emit the
197
'const char *' declaration.
199
- part two of the _.*Const removal patch. Some more defines of
200
_.*Const were removed which have been missed by the last patch
201
and the interval usage of _.*Const has been simplified to just
204
- removes more unused defines and functions in server/ .
205
Additionally a k&r style function was convertd to ansi c in
208
- converts more function declarations and their prototypes
209
without parameters from () to the (void) form
211
- attached patch changes all of the conditional i.e. _AuConst
212
definitions to only list const in the externally visible
213
header files. This is to preserve compatibility if someone
214
uses these definitions while using the libaudio library.
216
[JET] The use of AuConst is deprecated (and is probably not
217
being used by anyone anyway).
219
- removes the defined VENDOR_STRING and VENDOR_RELEASE from
220
server/include/site.h as they aren't used in the 3 files
221
including site.h. Additionally the inclusions of site.h was
222
removed from server/dia/main.c as none of its defines is used
225
- removes the 2 unused functions:
227
- server/dia/dispatch.c: void UpdateCurrentTime()
228
- server/dia/dixutils.c: TimeStamp ClientTimeToServerTime
230
and it changes one more occurence of () to (void).
232
- corrects some function declarations by changing () to (void)
234
- removes some unsued variables in lib/audio/nameaddr.c and
235
and unused function in server/os/utils.c
237
- removed some old (and stupid) debug code for AIX: in
238
server/os/utils.c there is some code to redirect error logging
239
from stderr to and file in tmp on AIXV3. As OpenDebug isn't
240
called anywhere this is broken when AIXV3 is
241
defined. Additionally this logfile is fixed in /tmp which
244
- removed the declaration of FreeResource from the opaque.h
245
header file. All files which include opaque.h don't use this
246
function and this declaration is copied from resource.h
248
- corrects several prototypes in resource.[ch] to match the
249
actual function definitions inside resource.c
251
- patch that modifies the two users of ostruct.h to directly
252
include os.h (which includes misc.h) and removes the
253
osstruct.h line in config/filelist. If an additional "svn
254
remove server/include/osstruct.h" is used we can get rid of
255
osstruct.h completely.
257
- removes servermd.h. removes the inclusion of servermd.h in 3
258
files and its reference in 'config/filelist'.
260
- clean up several of the client programs. Mostly adding const
261
to parameter/variable declarations. Additionally an unsused
262
variable was removed and some prototype in audemo.c were
265
- remove some unused variables
267
- remove server/include/miscstruct.h
269
- various include file cleanups - removing unused
270
variables/structures, etc left over from X11.
272
- removing old 'const' determination, correcting some proper
273
uses of const. 'const' is expected to be supported by your
276
- ANSIfication of various NAS components.
278
- remove unused portion of X11 server components (fonts, GC's,
281
- applied patches from Erik Auerswald:
283
- Add patch adding a proper 'reset' action to contrib/rc/nasd.
287
Adds support for a different mixer for the input device to the
288
voxware server. Without this patch the mixer device specified
289
in the input section of the config file is not used.
291
To use the same mixer for input and output just specify the
292
same device in the input- and output-section of the config
293
file. The empty string "" can be used to specify no mixer
294
device for the input- or output-section. This is documented
295
in the nasd.conf man page.
297
The outputsection keyword is added to the nasd.conf man page.
299
fixed a bug in the support of two devices: If two devices are
300
used, and the sample rate of the input device can be changed,
301
the wrong sample size would be set by openDevice().
303
remove the unused "stereodevs" variable.
305
NOTE: Prior to this patch, the mixer device parameter for the
306
input section was completely ignored. The default value
307
for this ignored parameter was "/dev/mixer1".
309
With this patch, this parameter is honored. If your
310
configuration depends on the input mixer being the same
311
as the output mixer, you will need to edit your
312
/etc/nas/nasd.conf and set the mixer parameter in the
313
inputsection to '/dev/mixer', or to whatever mixer
314
device your outputsection is using.
316
If your system contains a /dev/mixer1 device (the
317
default input mixer device), nasd will now use it. This
320
- preserve configuration of input device in the voxware server
321
when ReleaseDevice is on, and no flow is active.
323
- document nasd '-V' option in the man page
325
- opening the mixer device should be allowed to fail according
326
to http://radscan.com/nas/nas-ml/msg01121.html. But right now
327
it may only fail on startup, not when re-opening the audio
328
device. The attached patch corrects this issue.
330
- adding an option to aupanel to specify the initially
333
- keeping gain and input mode changes consistent between voxware
334
server and mixer if possible.
336
- changing recording level controls of the voxware server to use
337
IGain or RecLev when available and select only the specified
340
- fixing MixerInit option of the voxware server.
342
- Adding a KeepMixer option (on by default) that causes NAS to
343
always keep the mixer device open so it can track external
344
changes to mixer settings.
346
- patch adding ReInitMixer option that init's the mixer to
347
defaults every time nasd re-opens the audio device.
349
- patches ANSI'fying the nas clients
351
- extending the gainScale functionality to apply to the input
3
355
Version 1.8 (stable) 06/03/2006