aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* storedPlaylist: prevent potential DoS from stored playlist commandsEric Wong2008-01-263-2/+19
| | | | | | | | | | | | | | | | | | | | | | While mpd has always protected against the infinite expansion of the main playlist by limiting its size in memory, however the new storedPlaylist code has never checked for this limit. Malicious (or clumsy) users could repeatedly append songs to stored playlists, causing files to grow increasingly large on disk. Attempting to load extremely large files into memory will require mpd to slurp that all into memory, and ultimately the file would be unusable by mpd because of the configurable playlist size limit. Now we limit stored playlists to the max_playlist_length configuration variable set by the user (default is 16384). We will refuse to append to playlist files if they hit that limit; and also refuse to load more than the specified amount of songs into memory. r7154 in trunk git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7165 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* fix builds that only have FLAC >= 1.1.3 but not Ogg-VorbisEric Wong2008-01-263-9/+9
| | | | | r7108 in trunk git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7164 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* If clearing stored playlist fails, don't return error + OK. but only the ↵Eric Wong2008-01-261-2/+1
| | | | | | | error. this was caused by always having the handleStoredPlaylist function return 0. From qball, r7105 in trunk git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7163 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* conf.c: remove extra semi-colon here, tooEric Wong2008-01-261-1/+1
| | | | | r6874 in trunk git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7162 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* dmix fix, don't call snd_pcm_drain unless we're already in the RUNNING state ↵Eric Wong2008-01-261-1/+3
| | | | | | | (when users press stop, previous snd_pcm_drop(), then snd_pcm_drain() was called. this would lockup dmix) From shank, r6517 in trunk git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7161 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* removing debug messages from signal handlersEric Wong2008-01-264-10/+18
| | | | | | | | | | | As unfortunate as it is to remove such useful debugging messages, it's necessary to fix a potential deadlock with signal handling. A bunch of functions the debug functions call aren't safe to call from a signal handler. There are some alternate solutions, but they're neither pretty nor simple. So just remove them entirely for now. From: jat, r6828 in trunk git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7160 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Fix endless loop when mpd is launched from a non-interactive shell.Eric Wong2008-01-261-1/+5
| | | | | | | | | | | | | | | | | | | | Thanks to _noth_ for the patch, this fixes Mantis bug #1534 _noth_ wrote: > When MPD is launched from a non-interactive shell, it enters an endless > loop, filling up its error log file with "error accept()'ing" messages. > This is caused by the fact that stdin is already closed when mpd starts > up. listenOnPort() opens up the first of its sockets as fd 0 (the first > empty fd table position). Then, setup_log_output()->redirect_stdin() > overwrites fd0 (fd=open("/dev/null",...); dup2(fd, STDIN_FILENO);) > without checking if it corresponds to the actual standard input (or if > it is open in the first place). This means that listenSockets[0].fd now > is a fd for /dev/null, thus doIOForInterfaces()->getConnections() can't > accept(2) on it and fails with the above error. The attached patch fixes > this for me. r6843 in trunk git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7159 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* zeroconf: avoid passing NULLs to Avahi *_free() routinesEric Wong2008-01-261-4/+6
| | | | | | | | This should fix Debian bug #428551 (mpd crashes when restarting the dbus daemon) r6844 in trunk git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7158 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* mpc_plugin: break out if a missed error branchEric Wong2008-01-261-0/+2
| | | | | | | We shouldn't try to continue if mpc_decoder_initialize() fails. r7113 in trunk git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7157 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* storedPlaylist: avoid segfaulting with "/" in the pathEric Wong2008-01-261-2/+10
| | | | | A different, cleaner fix was used in trunk. git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@7156 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* fixup includes for new (1.1.4+ FLAC) (thx normalperson)Avuton Olrich2007-09-171-1/+3
| | | git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@6897 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Making branch for 0.13.0 fixes.J. Alexander Treuman2007-05-28161-37854/+0
| | | git-svn-id: https://svn.musicpd.org/mpd/branches/branch-0.13.0-fixes@6330 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Properly re-tagging 0.13.0 release.release-0.13.0J. Alexander Treuman2007-05-282-18/+9
|\ | | | | git-svn-id: https://svn.musicpd.org/mpd/tags/release-0.13.0@6328 09075e82-0dd4-0310-85a5-a0d7c8717e4f
| * Updating libFLAC.m4 so that -L isn't erroneously specified without anJ. Alexander Treuman2007-05-281-18/+8
| | | | | | | | | | argument. git-svn-id: https://svn.musicpd.org/mpd/trunk@6324 09075e82-0dd4-0310-85a5-a0d7c8717e4f
| * Adding ioops.h to mpd_headers so that it gets included in the tarball.J. Alexander Treuman2007-05-281-0/+1
| | | | | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6323 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* | Re-tagging 0.13.0 release to fix a couple of bugs with the tarball.J. Alexander Treuman2007-05-28161-0/+37854
| | | | | | git-svn-id: https://svn.musicpd.org/mpd/tags/release-0.13.0@6325 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* | Tagging 0.13.0 release.J. Alexander Treuman2007-05-280-0/+0
|/ | | git-svn-id: https://svn.musicpd.org/mpd/tags/release-0.13.0@6321 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Setting release date in ChangeLog.J. Alexander Treuman2007-05-281-1/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6320 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Updating INSTALL.J. Alexander Treuman2007-05-271-1/+4
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6293 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Updating UPGRADING.J. Alexander Treuman2007-05-271-1/+6
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6292 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Moving 0.13 tasks to 0.14 in TODO.J. Alexander Treuman2007-05-271-1/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6291 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Increasing default buffer_before_play from 0% to 10%.J. Alexander Treuman2007-05-274-4/+6
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6290 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Fix compilation error (missing ,)Avuton Olrich2007-05-271-1/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6289 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* "unable open" -> "unable to open"J. Alexander Treuman2007-05-261-1/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6278 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* After changing ERROR();exit() to FATAL(), gcc incorrectly detects someJ. Alexander Treuman2007-05-263-6/+6
| | | | | | uninitialized variables and non-returning functions that return. Let's tell it to stfu. git-svn-id: https://svn.musicpd.org/mpd/trunk@6277 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Changing all calls to ERROR() followed by exit(EXIT_FAILURE) with a singleJ. Alexander Treuman2007-05-2621-273/+135
| | | | | call to FATAL(). git-svn-id: https://svn.musicpd.org/mpd/trunk@6276 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Cleaning up pcm_getSampleRateConverter.J. Alexander Treuman2007-05-261-23/+27
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6275 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Exit with an error if channel count isn't 1 or 2.J. Alexander Treuman2007-05-261-0/+4
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6274 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Make pcm_convertAudioFormat return the buffer size. This is necessaryJ. Alexander Treuman2007-05-264-31/+32
| | | | | | | | because lsr may return less than the input buffer size, and the rest of the audio code needs to know the new size. This fixes the clicking that was introduced with recent changes to the lsr code. A huge thanks to remiss for figuring this out. git-svn-id: https://svn.musicpd.org/mpd/trunk@6273 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Adding format conversion and stored playlists to my AUTHORS entry. IJ. Alexander Treuman2007-05-261-1/+1
| | | | | | heavily modified both sets of code, and I think it's useful for people to know who's responsible/familiar with what. git-svn-id: https://svn.musicpd.org/mpd/trunk@6272 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* weather -> whetherJ. Alexander Treuman2007-05-261-1/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6271 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Changing calls to strdup to xstrdup.J. Alexander Treuman2007-05-261-2/+2
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6270 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Cleaning up addToStoredPlaylist. Now we call freeJustSong if adding a URL.J. Alexander Treuman2007-05-261-9/+18
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6269 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Make sure StoredPlaylists always contain UTF-8 paths that are eitherJ. Alexander Treuman2007-05-262-23/+38
| | | | | | | | | | | | | | | | | | | | | | relative paths in the DB or URLs. The main functional difference is that playlistmove and playlistdelete will rewrite playlists in the correct encoding and remove invalid lines instead of potentially modifying them. The specific changes are: appendSongToStoredPlaylist: * Don't convert to FS charset * Don't prepend music_directory if saving absolute paths writeStoredPlaylistToPath: * Convert to FS charset * Prepend music_directory if saving absolute paths loadStoredPlaylist: * Make sure each line is either in the DB or a URL loadPlaylist: * Don't bother checking paths, since it's done in loadStoredPlaylist now git-svn-id: https://svn.musicpd.org/mpd/trunk@6266 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* More formatting/error message cleanups in storedPlaylist.c.J. Alexander Treuman2007-05-261-50/+18
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6265 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Don't call freeStoredPlaylist(sp) inside an if (!sp) block. It causesJ. Alexander Treuman2007-05-261-2/+0
| | | | | segfaults. git-svn-id: https://svn.musicpd.org/mpd/trunk@6264 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Cleaning up formatting and error messages in storedPlaylist.c.J. Alexander Treuman2007-05-251-63/+25
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6263 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Reverting to the full lsr API. Turns out the simple API needs all of theJ. Alexander Treuman2007-05-247-36/+85
| | | | | | | | audio at once, so it won't work for us. The old full API code was still heavily broken, as each call to pcm_convertSampleRate() used the same state, even if it was processing two streams of audio. The new code keeps a separate state for each audio stream that's being converted. git-svn-id: https://svn.musicpd.org/mpd/trunk@6255 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Adding rename command, for renaming stored playlists.J. Alexander Treuman2007-05-244-0/+75
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6246 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Cleaning up error messages in storedPlaylist.c.J. Alexander Treuman2007-05-241-28/+42
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6245 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Don't list playlists in lsinfo if the path isn't the root directory (theyJ. Alexander Treuman2007-05-243-12/+23
| | | | | can't be loaded anyway). git-svn-id: https://svn.musicpd.org/mpd/trunk@6244 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Adding a note to mpdconf.example about increasing buffer_before_play if youJ. Alexander Treuman2007-05-231-0/+1
| | | | | hear skipping when changing songs. git-svn-id: https://svn.musicpd.org/mpd/trunk@6240 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Updating the audio_buffer_size and buffer_before_play entries inJ. Alexander Treuman2007-05-231-4/+5
| | | | | mpd.conf.5. git-svn-id: https://svn.musicpd.org/mpd/trunk@6239 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Changing some DEBUG/ERROR/FATAL messages in the JACK plugin.J. Alexander Treuman2007-05-231-18/+13
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6232 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Adding JACK documentation to mpd.conf.5.J. Alexander Treuman2007-05-231-0/+14
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6231 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Tidying up pcm_utils.c a bit more.J. Alexander Treuman2007-05-231-8/+9
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6230 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Switching to the lsr simple API. The problem with the full API is that theJ. Alexander Treuman2007-05-231-19/+7
| | | | | | | | | | | number of channels is specified when the converter state is created. Previously this was only done once, thus breaking horribly when the input audio suddenly had a different channel count. A new state could be created every time the number of channels changes, but this could happen many times a second if resampling to two different formats at once. The simple API doesn't have this problem, as channel count is an argument to the conversion function itself. git-svn-id: https://svn.musicpd.org/mpd/trunk@6229 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Just specify mimeType as NULL in mpc's InputPlugin struct.J. Alexander Treuman2007-05-221-2/+1
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6225 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Split pcm_convertAudioFormat into separate functions for bitrate, channel,J. Alexander Treuman2007-05-224-186/+217
| | | | | | and samplerate conversion. This makes the code much easier to read, and fixes a few bugs that were previously there. git-svn-id: https://svn.musicpd.org/mpd/trunk@6224 09075e82-0dd4-0310-85a5-a0d7c8717e4f
* Cleaning up/correcting some comments.J. Alexander Treuman2007-05-221-10/+7
| | | git-svn-id: https://svn.musicpd.org/mpd/trunk@6200 09075e82-0dd4-0310-85a5-a0d7c8717e4f