1. 16 May, 2007 1 commit
  2. 08 Apr, 2007 1 commit
  3. 05 Apr, 2007 1 commit
  4. 20 Mar, 2007 2 commits
  5. 24 Feb, 2007 1 commit
  6. 18 Feb, 2007 1 commit
  7. 14 Jan, 2007 2 commits
  8. 11 Jan, 2007 1 commit
  9. 23 Dec, 2006 1 commit
  10. 20 Nov, 2006 1 commit
  11. 26 Aug, 2006 1 commit
    • Eric Wong's avatar
      Replace strdup and {c,re,m}alloc with x* variants to check for OOM errors · 90847fc8
      Eric Wong authored
      I'm checking for zero-size allocations and assert()-ing them,
      so we can more easily get backtraces and debug problems, but we'll
      also allow -DNDEBUG people to live on the edge if they wish.
      
      We do not rely on errno when checking for OOM errors because
      some implementations of malloc do not set it, and malloc
      is commonly overridden by userspace wrappers.
      
      I've spent some time looking through the source and didn't find any
      obvious places where we would explicitly allocate 0 bytes, so we
      shouldn't trip any of those assertions.
      
      We also avoid allocating zero bytes because C libraries don't
      handle this consistently (some return NULL, some not); and it's
      dangerous either way.
      
      git-svn-id: https://svn.musicpd.org/mpd/trunk@4690 09075e82-0dd4-0310-85a5-a0d7c8717e4f
      90847fc8
  12. 20 Aug, 2006 1 commit
  13. 14 Aug, 2006 1 commit
    • Eric Wong's avatar
      Revert leaks from r4311, and also the leak fixes as a result of that · 6459b3ee
      Eric Wong authored
      utf8ToFsCharset() and fsCharsetToUtf8() got very broken in r4311, and
      resulted in several commits to fix those leaks.  Unfortunately, not all
      of those newly introduced leaks were fixed, nor was the result pretty.
      
      Also, fixed a double-free in lsPlaylists().  This is very hard
      to trigger (and therefore exploit) at the moment because we
      check printDirectoryInfo() beforehand.
      
      Intended behavior for utf8ToFsCharset() and fsCharsetToUtf8() as
      God^H^H^Hshank originally intended is now documented in path.h
      to prevent future errors like this.
      
      mpd could still use some good valgrind testing before the 0.12.0
      release.
      
      <plug>In addition to reducing heap fragmentation, malloc
      reductions from mpd-ke greatly reduces the chance of leaks from
      happening due to programming errors.</plug>
      
      git-svn-id: https://svn.musicpd.org/mpd/trunk@4639 09075e82-0dd4-0310-85a5-a0d7c8717e4f
      6459b3ee
  14. 30 Jul, 2006 4 commits
    • Eric Wong's avatar
      Standardize state_file handling routines. · 12aec573
      Eric Wong authored
      This way it's easier to manage and extend.
      
      git-svn-id: https://svn.musicpd.org/mpd/trunk@4494 09075e82-0dd4-0310-85a5-a0d7c8717e4f
      12aec573
    • Eric Wong's avatar
      remove deprecated myfprintf wrapper · 381d7232
      Eric Wong authored
      This shaves another 5-6k because we've removed the paranoid
      fflush() calls after every fprintf.  Now we only fflush()
      when we need to
      
      git-svn-id: https://svn.musicpd.org/mpd/trunk@4493 09075e82-0dd4-0310-85a5-a0d7c8717e4f
      381d7232
    • Eric Wong's avatar
      commandError() cleanups, fixup gcc checks · e86fd65c
      Eric Wong authored
      stripped binary size reduced by 9k on my machine from making
      commandError a function.  We'll print out error messages slightly
      slower before, but the smaller binary is more than worth it.
      
      git-svn-id: https://svn.musicpd.org/mpd/trunk@4488 09075e82-0dd4-0310-85a5-a0d7c8717e4f
      e86fd65c
    • Eric Wong's avatar
      interface/connection malloc reductions from mpd-ke · 4cf5d04c
      Eric Wong authored
      This patch massively reduces the amount of heap allocations at
      the interface/command layer.  Most commands with minimal output
      should not allocate memory from the heap at all.  Things like
      repeatedly polling status, currentsong, and volume changes
      should be faster as a result, and more importantly, not a source
      of memory fragmentation.
      
      These changes should be safe in that there's no way for a
      remote-client to corrupt memory or otherwise do bad stuff to
      MPD, but an extra set of eyes to review would be good.  Of
      course there's never any warranty :)
      
      No longer do we use FILE * structures in the interface, which means
      we don't have to allocate any new memory for most connections.
      
      Now, before you go on about losing the buffering that FILE *
      +implies+, remember that myfprintf() never took advantage of
      any of the stdio buffering features.
      
      To reduce the diff and make bugs easier to spot in the diff,
      I've kept myfprintf in places where we write to files (and not
      network interfaces).  Expect myfprintf to go away entirely soon
      (we'll use fprintf for writing regular files).
      
      git-svn-id: https://svn.musicpd.org/mpd/trunk@4483 09075e82-0dd4-0310-85a5-a0d7c8717e4f
      4cf5d04c
  15. 27 Jul, 2006 1 commit
  16. 21 Jul, 2006 4 commits
  17. 20 Jul, 2006 2 commits
  18. 17 Jul, 2006 1 commit
    • Eric Wong's avatar
      sparse: ANSI-fy function declarations · a234780a
      Eric Wong authored
      These are just warnings from sparse, but it makes the output
      easier to read.  I ran this through a quick perl script, but
      of course verified the output by looking at the diff and making
      sure the thing still compiles.
      
      here's the quick perl script I wrote to generate this patch:
      ----------- 8< -----------
      use Tie::File;
      defined(my $pid = open my $fh, '-|') or die $!;
      if (!$pid) {
      open STDERR, '>&STDOUT' or die $!;
      exec 'sparse', @ARGV or die $!;
      }
      my $na = 'warning: non-ANSI function declaration of function';
      while (<$fh>) {
      print STDERR $_;
      if (/^(.+?\.[ch]):(\d+):(\d+): $na '(\w+)'/o) {
      my ($f, $l, $pos, $func) = ($1, $2, $3, $4);
      $l--;
      tie my @x, 'Tie::File', $f or die "$!: $f";
      print '-', $x[$l], "\n";
      $x[$l] =~ s/\b($func\s*)\(\s*\)/$1(void)/;
      print '+', $x[$l], "\n";
      untie @x;
      }
      }
      
      git-svn-id: https://svn.musicpd.org/mpd/trunk@4378 09075e82-0dd4-0310-85a5-a0d7c8717e4f
      a234780a
  19. 16 Jul, 2006 3 commits
  20. 14 Jul, 2006 2 commits
  21. 13 Jul, 2006 1 commit
  22. 20 May, 2006 1 commit
  23. 08 May, 2006 2 commits
  24. 23 Apr, 2006 1 commit
  25. 26 Mar, 2006 3 commits