1. 07 Mar, 2017 1 commit
  2. 23 Feb, 2017 1 commit
  3. 07 Feb, 2017 1 commit
  4. 14 Jan, 2017 1 commit
  5. 13 Jan, 2017 1 commit
    • Markus Seeber's avatar
      Avoid side effects from parsing of "version" option in jackd (#245) · 64a56049
      Markus Seeber authored
      * detect version option before all other oprion parsing
      
      jackd now checks its arguments for "-V" and "--version" before all other
      option parsing happens.
      
      * remove some dead code from option parsing
      
      Version options are detected before optparse runs, the removed code
      paths thus became obsolete.
      
      * remove rest of version option from optparse
      
      Detection of the version option is now handled outside of optparse, thus
      left over stings and variables are removed.
      
      * switch to string comparison for detection version option
      
      Demanding an exact match for the option strings reflects the original
      behavior more closely than a search for substrings.
      64a56049
  6. 18 Oct, 2016 1 commit
  7. 11 Jun, 2016 1 commit
    • Adrian Knoth's avatar
      Heap-allocate client matrix in topo sort · 69157882
      Adrian Knoth authored
      If configured with --clients=512 (translates to CLIENT_NUM), we exceed
      the maximum stack size. CLIENT_NUM==500 still works, but let's allocate
      the matrix on the heap to be safe.
      
      Kudos to Markus Seeber for the initial bug triage.
      
      Fixes #212
      69157882
  8. 19 May, 2016 4 commits
    • Gaël PORTAY's avatar
      Fix duplicate instruction. · fd48059f
      Gaël PORTAY authored
      fd48059f
    • Gaël PORTAY's avatar
      9e5d1909
    • Gaël PORTAY's avatar
      Fix initialization of string members. · ddf1b5a1
      Gaël PORTAY authored
      Reported by valgrind using the command below:
      $ valgrind jackd -p128 -t2000 -dalsa -dhw:0 -r44100 -p2048 -n2 -S
      ==8930== Memcheck, a memory error detector
      ==8930== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
      ==8930== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
      ==8930== Command: jackd -p128 -t2000 -dalsa -dhw:0 -r44100 -p2048 -n2 -S
      ==8930==
      jackdmp 1.9.11
      Copyright 2001-2005 Paul Davis and others.
      Copyright 2004-2016 Grame.
      jackdmp comes with ABSOLUTELY NO WARRANTY
      This is free software, and you are welcome to redistribute it
      under certain conditions; see the file COPYING for details
      JACK server starting in realtime mode with priority 10
      self-connect-mode is "Don't restrict self connect requests"
      creating alsa driver ... hw:0|hw:0|2048|2|44100|0|0|nomon|swmeter|-|16bit
      configuring for 44100Hz, period = 2048 frames (46.4 ms), buffer = 2 periods
      ALSA: final selected sample format for capture: 16bit little-endian
      ALSA: use 2 periods for capture
      ALSA: final selected sample format for playback: 16bit little-endian
      ALSA: use 2 periods for playback
      ==8930== Thread 4:
      ==8930== Syscall param write(buf) points to uninitialised byte(s)
      ==8930==    at 0x571388D: ??? (syscall-template.S:81)
      ==8930==    by 0x4EA70B3: Jack::JackClientSocket::Write(void*, int) (JackSocket.cpp:233)
      ==8930==    by 0x4E94C62: Jack::JackClientCheckResult::Write(Jack::detail::JackChannelTransactionInterface*) (JackRequest.h:227)
      ==8930==    by 0x4ECDF3A: Jack::JackRequestDecoder::HandleRequest(Jack::detail::JackChannelTransactionInterface*, int) (JackRequestDecoder.cpp:58)
      ==8930==    by 0x4ED4219: Jack::JackSocketServerChannel::Execute() (JackSocketServerChannel.cpp:247)
      ==8930==    by 0x4EA4B63: Jack::JackPosixThread::ThreadHandler(void*) (JackPosixThread.cpp:59)
      ==8930==    by 0x59F5181: start_thread (pthread_create.c:312)
      ==8930==    by 0x572247C: clone (clone.S:111)
      ==8930==  Address 0x41da85e is on thread 4's stack
      ==8930==  in frame #3, created by Jack::JackRequestDecoder::HandleRequest(Jack::detail::JackChannelTransactionInterface*, int) (JackRequestDecoder.cpp:46)
      ==8930==
      ==8930== Syscall param write(buf) points to uninitialised byte(s)
      ==8930==    at 0x571388D: ??? (syscall-template.S:81)
      ==8930==    by 0x4EA70B3: Jack::JackClientSocket::Write(void*, int) (JackSocket.cpp:233)
      ==8930==    by 0x4ED619B: Jack::JackClientNotification::Write(Jack::detail::JackChannelTransactionInterface*) (JackRequest.h:1606)
      ==8930==    by 0x4ED5F2E: Jack::JackSocketNotifyChannel::ClientNotify(int, char const*, int, int, char const*, int, int, int*) (JackSocketNotifyChannel.cpp:56)
      ==8930==    by 0x4EB51DF: Jack::JackExternalClient::ClientNotify(int, char const*, int, int, char const*, int, int) (JackExternalClient.cpp:40)
      ==8930==    by 0x4EAFA9A: Jack::JackEngine::ClientNotify(Jack::JackClientInterface*, int, char const*, int, int, char const*, int, int) (JackEngine.cpp:274)
      ==8930==    by 0x4EAFD34: Jack::JackEngine::NotifyAddClient(Jack::JackClientInterface*, char const*, int) (JackEngine.cpp:318)
      ==8930==    by 0x4EB0C99: Jack::JackEngine::ClientExternalOpen(char const*, int, int, int*, int*, int*, int*) (JackEngine.cpp:636)
      ==8930==    by 0x4ED4486: Jack::JackLockedEngine::ClientExternalOpen(char const*, int, int, int*, int*, int*, int*) (JackLockedEngine.h:123)
      ==8930==    by 0x4ED3AD5: Jack::JackSocketServerChannel::ClientAdd(Jack::detail::JackChannelTransactionInterface*, Jack::JackClientOpenRequest*, Jack::JackClientOpenResult*) (JackSocketServerChannel.cpp:132)
      ==8930==    by 0x4ECE0B8: Jack::JackRequestDecoder::HandleRequest(Jack::detail::JackChannelTransactionInterface*, int) (JackRequestDecoder.cpp:73)
      ==8930==    by 0x4ECDFBA: Jack::JackRequestDecoder::HandleRequest(Jack::detail::JackChannelTransactionInterface*, int) (JackRequestDecoder.cpp:63)
      ==8930==  Address 0x41d9ccb is on thread 4's stack
      ==8930==  in frame #3, created by Jack::JackSocketNotifyChannel::ClientNotify(int, char const*, int, int, char const*, int, int, int*) (JackSocketNotifyChannel.cpp:51)
      ==8930==
      ==8930== Syscall param write(buf) points to uninitialised byte(s)
      ==8930==    at 0x571388D: ??? (syscall-template.S:81)
      ==8930==    by 0x4EA70B3: Jack::JackClientSocket::Write(void*, int) (JackSocket.cpp:233)
      ==8930==    by 0x4ED633C: Jack::JackClientNotification::Write(Jack::detail::JackChannelTransactionInterface*) (JackRequest.h:1612)
      ==8930==    by 0x4ED5F2E: Jack::JackSocketNotifyChannel::ClientNotify(int, char const*, int, int, char const*, int, int, int*) (JackSocketNotifyChannel.cpp:56)
      ==8930==    by 0x4EB51DF: Jack::JackExternalClient::ClientNotify(int, char const*, int, int, char const*, int, int) (JackExternalClient.cpp:40)
      ==8930==    by 0x4EAFA9A: Jack::JackEngine::ClientNotify(Jack::JackClientInterface*, int, char const*, int, int, char const*, int, int) (JackEngine.cpp:274)
      ==8930==    by 0x4EAFD34: Jack::JackEngine::NotifyAddClient(Jack::JackClientInterface*, char const*, int) (JackEngine.cpp:318)
      ==8930==    by 0x4EB0C99: Jack::JackEngine::ClientExternalOpen(char const*, int, int, int*, int*, int*, int*) (JackEngine.cpp:636)
      ==8930==    by 0x4ED4486: Jack::JackLockedEngine::ClientExternalOpen(char const*, int, int, int*, int*, int*, int*) (JackLockedEngine.h:123)
      ==8930==    by 0x4ED3AD5: Jack::JackSocketServerChannel::ClientAdd(Jack::detail::JackChannelTransactionInterface*, Jack::JackClientOpenRequest*, Jack::JackClientOpenResult*) (JackSocketServerChannel.cpp:132)
      ==8930==    by 0x4ECE0B8: Jack::JackRequestDecoder::HandleRequest(Jack::detail::JackChannelTransactionInterface*, int) (JackRequestDecoder.cpp:73)
      ==8930==    by 0x4ECDFBA: Jack::JackRequestDecoder::HandleRequest(Jack::detail::JackChannelTransactionInterface*, int) (JackRequestDecoder.cpp:63)
      ==8930==  Address 0x41d9d1d is on thread 4's stack
      ==8930==  in frame #3, created by Jack::JackSocketNotifyChannel::ClientNotify(int, char const*, int, int, char const*, int, int, int*) (JackSocketNotifyChannel.cpp:51)
      ==8930==
      ddf1b5a1
    • Gaël PORTAY's avatar
      Fix uninitialized fEndDateUst. · a91969e1
      Gaël PORTAY authored
      Reported by valgrind using the command below:
      $ valgrind jackd -p128 -t2000 -dalsa -dhw:0 -r44100 -p2048 -n2 -S
      ==17496== Memcheck, a memory error detector
      ==17496== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
      ==17496== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
      ==17496== Command: jackd -p128 -t2000 -dalsa -dhw:0 -r44100 -p2048 -n2 -S
      ==17496==
      jackdmp 1.9.11
      Copyright 2001-2005 Paul Davis and others.
      Copyright 2004-2016 Grame.
      jackdmp comes with ABSOLUTELY NO WARRANTY
      This is free software, and you are welcome to redistribute it
      under certain conditions; see the file COPYING for details
      JACK server starting in realtime mode with priority 10
      self-connect-mode is "Don't restrict self connect requests"
      creating alsa driver ... hw:0|hw:0|2048|2|44100|0|0|nomon|swmeter|-|16bit
      configuring for 44100Hz, period = 2048 frames (46.4 ms), buffer = 2 periods
      ALSA: final selected sample format for capture: 16bit little-endian
      ALSA: use 2 periods for capture
      ALSA: final selected sample format for playback: 16bit little-endian
      ALSA: use 2 periods for playback
      ==17496== Thread 3:
      ==17496== Conditional jump or move depends on uninitialised value(s)
      ==17496==    at 0x4E91CC9: Jack::JackEngineControl::CalcCPULoad(Jack::JackClientInterface**, Jack::JackGraphManager*, unsigned long, unsigned long) (JackEngineControl.cpp:58)
      ==17496==    by 0x4EB3256: Jack::JackEngineControl::CycleBegin(Jack::JackClientInterface**, Jack::JackGraphManager*, unsigned long, unsigned long) (JackEngineControl.h:153)
      ==17496==    by 0x4EAF54A: Jack::JackEngine::Process(unsigned long, unsigned long) (JackEngine.cpp:166)
      ==17496==    by 0x4EA922E: Jack::JackLockedEngine::Process(unsigned long, unsigned long) (JackLockedEngine.h:261)
      ==17496==    by 0x4EA8819: Jack::JackAudioDriver::ProcessGraphAsyncMaster() (JackAudioDriver.cpp:250)
      ==17496==    by 0x4EA87D0: Jack::JackAudioDriver::ProcessGraphAsync() (JackAudioDriver.cpp:236)
      ==17496==    by 0x4EA8795: Jack::JackAudioDriver::ProcessAsync() (JackAudioDriver.cpp:225)
      ==17496==    by 0x4EA870E: Jack::JackAudioDriver::Process() (JackAudioDriver.cpp:202)
      ==17496==    by 0x4EBA5DA: Jack::JackThreadedDriver::Process() (JackThreadedDriver.cpp:71)
      ==17496==    by 0x4EBAC52: Jack::JackThreadedDriver::Execute() (JackThreadedDriver.cpp:244)
      ==17496==    by 0x4EA4B63: Jack::JackPosixThread::ThreadHandler(void*) (JackPosixThread.cpp:61)
      ==17496==    by 0x59F5181: start_thread (pthread_create.c:312)
      ==17496==
      ^CJack main caught signal 2
      ==17496==
      ==17496== HEAP SUMMARY:
      ==17496==     in use at exit: 95,475 bytes in 1,441 blocks
      ==17496==   total heap usage: 2,793 allocs, 1,352 frees, 7,217,645 bytes allocated
      ==17496==
      ==17496== LEAK SUMMARY:
      ==17496==    definitely lost: 1,458 bytes in 10 blocks
      ==17496==    indirectly lost: 7,680 bytes in 4 blocks
      ==17496==      possibly lost: 42,998 bytes in 1,314 blocks
      ==17496==    still reachable: 43,339 bytes in 113 blocks
      ==17496==         suppressed: 0 bytes in 0 blocks
      ==17496== Rerun with --leak-check=full to see details of leaked memory
      ==17496==
      ==17496== For counts of detected and suppressed errors, rerun with: -v
      ==17496== Use --track-origins=yes to see where uninitialised values come from
      ==17496== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
      a91969e1
  9. 17 May, 2016 1 commit
  10. 31 Mar, 2016 1 commit
  11. 30 Mar, 2016 1 commit
  12. 18 Mar, 2016 3 commits
  13. 11 Mar, 2016 2 commits
  14. 24 Feb, 2016 1 commit
  15. 11 Feb, 2016 1 commit
  16. 01 Jan, 2016 1 commit
  17. 19 Dec, 2015 2 commits
  18. 15 Dec, 2015 1 commit
  19. 13 Dec, 2015 1 commit
  20. 10 Nov, 2015 1 commit
  21. 22 Oct, 2015 1 commit
  22. 08 Oct, 2015 3 commits
  23. 05 Oct, 2015 1 commit
  24. 06 Sep, 2015 1 commit
  25. 03 Sep, 2015 1 commit
  26. 25 Aug, 2015 1 commit
  27. 19 Jul, 2015 3 commits
  28. 17 Jul, 2015 1 commit
  29. 26 Jun, 2015 1 commit