aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ape: added protection against large memory allocationsMax Kellermann2009-07-192-0/+4
| | | | | | The function tag_ape_load() retrieves a 32 bit unsigned integer from the input file, and passes it to g_malloc(). This is dangerous, and may be used for a denial of service attack on MPD.
* tag_ape: removed redundant length checkMax Kellermann2009-07-191-3/+4
| | | | | Extend the tagLen check after reading it. Removed the second (redundant) check after the subtraction.
* ape: check the tag size (fixes integer underflow)Max Kellermann2009-07-182-1/+3
| | | | | | | The expression "tagLen - size > 0" may result in an integer underflow and a buffer overflow, when "size" is larger than "tagLen". "size" is read from the input file, and must not be trusted. This patch changes the expression to "tagLen > size", which is a lot safer.
* configure.ac: fix the --enable-alsa help stringMax Kellermann2009-07-171-2/+1
| | | | --enable means "enable", not "disable".
* Modify version string to post-release version 0.15.2~gitAvuton Olrich2009-07-152-1/+4
|
* mpd version 0.15.1release-0.15.1Avuton Olrich2009-07-152-2/+2
|
* Makefile.am: disable test/run_encoder without pluginsMax Kellermann2009-07-151-1/+3
| | | | | If the encoder plugin API is disabled at compile time, don't compile test/run_encoder.c.
* NEWS: fixed typoMax Kellermann2009-07-141-1/+1
|
* configure.ac: fail when ffmpeg is enabled, but not foundMax Kellermann2009-07-141-7/+5
|
* output/httpd: removed duplicate sys/types.h includeMax Kellermann2009-07-141-4/+0
| | | | | The first patch by Patrick didn't work, because his "#ifdef HAVE_OSX" line would have required config.h.
* doc: documented the "shout" output plugin settingsMax Kellermann2009-07-061-0/+123
|
* doc: documented the "pulse" output plugin settingsMax Kellermann2009-07-061-0/+34
|
* doc: documented the "command" setting of the "pipe" output pluginMax Kellermann2009-07-061-0/+22
|
* decoder/flac: fix assertion failure in tag_free() callMax Kellermann2009-07-062-2/+3
| | | | | | Initialize flac_data.tag right after flac_data_init(). This way, the "goto fail" won't jump to the point where tag_free(NULL) can be called.
* output/httpd: include sys/types.hMax Kellermann2009-07-062-0/+3
| | | | | | On Mac OS X, the httpd plugin cannot be compiled, because OS X's system headers do nto include sys/types.h, although they use u_int32_t.
* song: initialize mtime in song_alloc()Max Kellermann2009-07-061-0/+1
|
* log: fix double free() bug during shutdownMax Kellermann2009-07-052-6/+3
| | | | | Don't free an internal configuration value in log_init(). Call config_get_path() instead of manually calling parsePath().
* database: fixed NULL pointer dereference after charset changeMax Kellermann2009-06-302-4/+6
| | | | | | | When the filesystem_charset is changed in mpd.conf, MPD should discard the old database. In this error branch, MPD did not fill the GError object properly, and logged a warning message instead, which caused a segmentation fault.
* doc/user: added introductionEnrico Mioso2009-06-301-3/+33
| | | | | | | - introduce a section explaining the mpd.conf format, as done in the man page: is it better to re-explain it here or ointing the user to the man page, avoiding information dupplication? - reorganizze some sections of the manual to give them a linear aspect...
* doc/protocol: clarified "idle database"Max Kellermann2009-06-301-1/+1
|
* output_thread: don't play next chunk after command==PAUSEMax Kellermann2009-06-291-1/+5
| | | | | When the PAUSE loop ends, re-check the next command before calling ao_play() again.
* output_all: don't resume playback when stopping during pauseMax Kellermann2009-06-292-2/+2
| | | | | | | | When MPD was paused, and the client sent the "stop" command (or "clear"), a glitch caused MPD to continue playback for a split second. This was because audio_output_all_cancel() calls audio_output_all_update(), which reopens all output devices, and re-ignites the playback loop.
* doc: fix wording for option "follow_inside_symlinks"Enrico Mioso2009-06-261-2/+2
|
* configure.ac: fix the --disable-ffmpeg help textMax Kellermann2009-06-251-1/+1
|
* NEWS: updated NEWS file for 0.15.1Max Kellermann2009-06-252-1/+4
|
* mpd version 0.15release-0.15Avuton Olrich2009-06-232-2/+2
|
* decoder_thread: reopen the stream after file_decode() has failedMax Kellermann2009-06-191-0/+11
| | | | | | | | | When decoding a local file, the decoder thread tries to run all matching decoders, until one succeeds. Both file_decode() and stream_decode() can decode a stream, but MPD closes the stream before calling file_decode(). Problem is: when this decoder fails, and the next's stream_decode() method is invoked, the input_stream is still closed. This patch reopens it.
* listen: bind() failure on secondary address is non-fatalMax Kellermann2009-06-102-3/+26
| | | | | | | | | Several users had problems with binding MPD to "localhost". The cause was duplicate /etc/hosts entries: the resolver library returns 127.0.0.1 twice, and of course, MPD attempts to bind to "both" of them. This patch makes failures non-fatal, given that at least one address was bound successfully. This is a workaround; users should rather fix their /etc/hosts file.
* listen: renamed "error" to "error_r" in listen_add_host()Max Kellermann2009-06-101-4/+4
|
* listen: print debug message before bind()Max Kellermann2009-06-101-0/+7
| | | | Dump each socket address before binding to it.
* doc: refer to command_list_ok_begin, not command_list_beginMax Kellermann2009-06-091-1/+1
| | | | list_OK is returned only after command_list_ok_begin.
* doc: fixed a typo in the protocol documentationMax Kellermann2009-06-091-1/+1
|
* ffmpeg: moved code to ffmpeg_copy_metadata()Max Kellermann2009-06-081-33/+18
|
* ffmpeg: removed "new metadata api" warningMax Kellermann2009-06-081-2/+0
| | | | | This warning is useless. I assume the author added it for debugging purposes.
* client: check "expired" flag again in client_write_output()Max Kellermann2009-06-041-0/+3
| | | | | | | When client_defer_output() aborts the connection to the client, client_write_output() called client_write_deferred() anyway. This caused an assertion failure. Fix it by checking for the "expired" flag again after client_defer_output() returns.
* client: added assertions on channel!=NULLMax Kellermann2009-06-041-0/+10
| | | | | | I'm hunting down a bug where client->channel==NULL during I/O operations. These new assertions help avoid this kind of bug in the future.
* decoder_plugin: corrected outdated API documentationMax Kellermann2009-06-041-21/+22
|
* conf: make config_param.num_block_params unsignedMax Kellermann2009-06-032-5/+3
|
* conf: eliminated CamelCaseMax Kellermann2009-06-035-23/+24
| | | | Renamed all remaining CamelCase functions.
* doc: mark the "User's Manual" as incompleteMax Kellermann2009-06-021-0/+2
|
* doc: added Developer's ManualMax Kellermann2009-06-023-1/+111
| | | | Just a start...
* doc: added "since MPD version" to commandsMax Kellermann2009-06-021-4/+17
| | | | Document which commands were introduced after MPD 0.13.
* player_thread: check pipe size again before exitingMax Kellermann2009-06-021-1/+5
| | | | | | When the decoder is finished, break out of the player loop only after another player.pipe check. We did check the pipe size a few lines above, but that check was kind of racy.
* player_thread: don't leak empty music_chunksMax Kellermann2009-06-021-1/+3
| | | | | | | When a music_chunk only contains a tag but no PCM data, play_chunk() returns true without freeing the chunk. The caller now assumes that the chunk is moved into some music_pipe and does not bother to free it either.
* player_thread: reinitialize music_buffer in !NDEBUGMax Kellermann2009-05-291-0/+9
| | | | | | To check for leaked music_chunk objects, free the music buffer on CLOSE_AUDIO. This invokes an assertion check which ensures that all chunks have been returned to the buffer.
* output_all: explicitly return "true" from audio_output_all_play()Max Kellermann2009-05-291-1/+1
| | | | | | Instead of returning the local variable "ret" which is always true at this point, hard-code the "true" return value, because that might be more readable.
* input/file: log message on errorMathieu Rochette2009-05-281-0/+2
| | | | | | | | If a file is removed the library, next time mpd will try to play it it will result in an error 'ERROR: problems decoding some/file.ogg'. Nothing is written in log files (verbose mode or not) [mk: append strerror(errno)]
* volume: changed "default" to "DISABLED" in switch statementMax Kellermann2009-05-281-1/+4
| | | | | Make gcc warn us if we add a new mixer type, and forget to add a new "case" line.
* added doc/sticker to .gitignoreMax Kellermann2009-05-281-0/+1
|
* volume: converted volume_mixer_type to an enumMax Kellermann2009-05-281-5/+6
| | | | Don't use CPP macros when you can use C enums.