Commit Graph

10837 Commits

Author SHA1 Message Date
Max Kellermann e140a28073 archive/iso9660: check path buffer bounds 2016-03-07 14:21:01 +01:00
Max Kellermann de61c3b962 archive/iso9660: use a single path buffer for Visit()
Avoid wasting 4 kB stack per directory level.
2016-03-07 14:01:52 +01:00
Max Kellermann c46fc4531b archive/iso9660: move the "." and ".." checks up 2016-03-07 14:01:40 +01:00
Max Kellermann 065a9ed10f archive/iso9660: add local variable "filename" 2016-03-07 13:57:07 +01:00
Max Kellermann e44c0254f7 archive/iso9660: make variables more local 2016-03-07 13:15:07 +01:00
Max Kellermann 13f9f0315f util/HugeAllocator: fix division by zero due to inverted check
There were two ways this could fail:

1. division by zero when sysconf(_SC_PAGESIZE)==0

2. mmap() failure because the size parameter is not aligned to page
   size

Neither ever happened: sysconf() never fails, and the only caller
passes a size that is already aligned.  Phew.
2016-03-06 23:53:41 +01:00
Max Kellermann 1532ffe215 protocol/ArgParser: fix range check
The old check

 unsigned(value) > std::numeric_limits<unsigned>::max()

.. cannot ever fail.
2016-03-06 23:41:08 +01:00
Max Kellermann b24cbc68ba decoder/dsdiff: fix off-by-one buffer overflow 2016-03-06 23:28:29 +01:00
Max Kellermann 976fdd76c1 decoder/opus: limit tag size to 64 kB 2016-03-06 23:26:48 +01:00
Max Kellermann bbda335e02 mixer/pulse: fix integer division rounding 2016-03-06 23:23:30 +01:00
Max Kellermann 031410c72b Instance: add StateFile* attribute 2016-03-05 21:00:38 +01:00
Max Kellermann 710def8e38 Partition: un-inline the constructor 2016-03-05 20:51:29 +01:00
Max Kellermann c0bda1b103 Idle: move flags to IdleFlags.hxx 2016-03-05 20:48:37 +01:00
Max Kellermann 0e87ce4680 GlobalEvents: expose the internal class
Move the GlobalEvents::Monitor instance into class Instance.
Eliminate all global variables.
2016-03-05 20:23:30 +01:00
Max Kellermann b4d594eeff Instance: embed EventLoop, no pointer 2016-03-05 20:20:12 +01:00
Max Kellermann ce09379bae Main: use Instance::Shutdown() 2016-03-05 20:20:12 +01:00
Max Kellermann b27fb64317 client/ClientRead: use Instance::Shutdown() 2016-03-05 20:19:20 +01:00
Max Kellermann 099455db25 db/update/Service: convert const to constexpr 2016-03-05 20:08:01 +01:00
Max Kellermann 3146bf51e6 db/update/Service: eliminate attribute "progress"
Use walk!=nullptr instead.
2016-03-05 19:40:11 +01:00
Max Kellermann b24a5e0662 Partition: add method EmitIdle()
Prepare for moving idle events to class Partition.  Right now, it's
just a wrapper for idle_add().
2016-03-05 19:16:39 +01:00
Max Kellermann e52ac0b187 event/MaskMonitor: new class to replace code in GlobalEvents and Idle 2016-03-05 19:15:50 +01:00
Max Kellermann eaa1590866 GlobalEvents: eliminate SHUTDOWN, use Instance::Shutdown() instead 2016-03-05 18:56:27 +01:00
Max Kellermann 071af004bd GlobalEvents: include cleanup 2016-03-05 18:56:27 +01:00
Max Kellermann 23ab4e5e5f Instance: add method Shutdown() 2016-03-05 18:56:16 +01:00
Max Kellermann 8e563cbccd Instance: use C++11 initializers 2016-03-05 18:55:57 +01:00
Max Kellermann 1aee89f5ea *: include cleanup (using iwyu) 2016-03-01 22:08:13 +01:00
Max Kellermann d2dd6f7c70 thread/Posix{Mutex,Cond}: use "constexpr" only with glibc
Apparently all other C libraries are not compatible with "constexpr".
Those which are not will get a performance penalty, but at least they
work at all.
2016-03-01 21:23:59 +01:00
Max Kellermann e9a544fa98 configure.ac: prepare for 0.19.14 2016-03-01 21:22:42 +01:00
Max Kellermann fb547260d1 player/Control: Play*() returns Error information 2016-02-28 13:31:41 +01:00
Max Kellermann 2065e32904 queue/PlaylistControl: clear "queued" before calling LockSeek()
This is necessary to avoid an assertion failure in UpdateQueuedSong()
after LockSeek() has failed.
2016-02-28 13:19:44 +01:00
Max Kellermann ac15581c56 command/error: remove unused function print_playlist_result() 2016-02-28 11:53:38 +01:00
Max Kellermann 9e2e882157 PlaylistPrint: throw PlaylistError on error 2016-02-28 11:52:39 +01:00
Max Kellermann 99ded56047 command/error: remove db_domain from ToAck(Error) 2016-02-28 11:48:12 +01:00
Max Kellermann 65386f52f0 db/proxy: throw DatabaseError on error 2016-02-28 11:47:03 +01:00
Max Kellermann 5b8dce7456 db/simple: throw DatabaseError on error 2016-02-28 11:40:59 +01:00
Max Kellermann de938eb621 db/simple: handle exception in Open() properly, fix memory leak 2016-02-28 11:40:39 +01:00
Max Kellermann 83cc6c0835 db/simple: use second Error instance in Open()
Don't need to clear the caller-specified one.
2016-02-28 11:38:22 +01:00
Max Kellermann 304d78a4c8 command/error: remove playlist_domain from ToAck(Error)
playlist_domain is no longer used for class Error.
2016-02-28 11:17:43 +01:00
Max Kellermann 347590751c SongLoader: throw PlaylistError on error 2016-02-28 11:15:20 +01:00
Max Kellermann fe4b1f96f1 SongLoader: use temporary stack variable, no heap allocation
Improved exception-safety.
2016-02-28 11:08:00 +01:00
Max Kellermann 9de984f7f8 queue/PlaylistControl: throw PlaylistError on error 2016-02-28 11:04:35 +01:00
Max Kellermann b6cb9b853a queue/PlaylistEdit: throw PlaylistError on error 2016-02-28 11:02:36 +01:00
Max Kellermann 50b930f283 playlist/edit: use std::unique_ptr 2016-02-28 11:00:59 +01:00
Max Kellermann cbeb809798 playlist/queue: use std::unique_ptr 2016-02-28 10:58:50 +01:00
Max Kellermann ea626368a0 queue/QueueCommands: use std::unique_ptr 2016-02-28 10:56:37 +01:00
Max Kellermann c81747dd15 queue/PlaylistTag: throw PlaylistError on error 2016-02-28 10:40:31 +01:00
Max Kellermann f8810d7caf PlaylistError: add NotPlaying() 2016-02-28 10:38:17 +01:00
Max Kellermann 92f54f0b59 output/alsa: disable DoP if it fails
See http://bugs.musicpd.org/view.php?id=4496
2016-02-28 10:19:19 +01:00
Max Kellermann ddce544b53 output/alsa: move the PcmExport::Open() call to Open() 2016-02-28 10:15:54 +01:00
Max Kellermann 21fb7eea82 output/alsa: probe DSD_U32 if DSD_U8 fails
See http://bugs.musicpd.org/view.php?id=4485
2016-02-28 09:59:09 +01:00