1. 08 Oct, 2013 2 commits
  2. 24 Jul, 2013 1 commit
  3. 15 Jul, 2013 2 commits
  4. 08 Jul, 2013 2 commits
  5. 30 May, 2013 1 commit
  6. 29 May, 2013 3 commits
  7. 20 May, 2013 6 commits
    • Julius Plenz's avatar
      Block all signals during store_pageinfo() and free_unclaimed_pages() · 609e03d4
      Julius Plenz authored
      The friendly folks at #musl again:
      
      21:34 < dalias> the cheap way around this problem is to block signals for the
         entire duration of the unsafe operation
      21:35 < dalias> formally (by the rules of the standard) this is not sufficient
      21:35 < dalias> because formally it's not just calling pthread_mutex_lock again
         on the same mutex  while the first call is interrupted that's undefined
      21:36 < dalias> it's calling ANY unsafe function while ANY unsafe function (the
         same or otherwise) with any argument (e.g. not necessarily the same mutex)
         that gives undefined behavior
      21:38 < dalias> but real-world-implementations don't have this maximum
         theoretical degree of unsafety
      21:38 < dalias> so the approach i described (just ensuring your functions don't
         interrupt themselves or each other) should be enough to make them safe
      609e03d4
    • Julius Plenz's avatar
      Assert the existence of original functions · e979b3dd
      Julius Plenz authored
      The friendly folks at #musl again:
      
      21:17 < dalias> if you init the pointers both from the ctor and the "lazy
         init", then the assertion-failure/abort would happen during construction
         (either your ctor or somebody else's ctor calling your functions)
      21:17 < dalias> so the program would exit "before it even gets started"
      21:17 < dalias> and this is not so bad
      
      21:18 < dalias> normally i consider it really bad practice for a library to
         abort the program
      21:18 < dalias> but this happens during ctors, and there truely is no way to
         proceed
      21:18 < dalias> if you've already replaced the program's library functions
         (open, etc.) with your copies, and then find that you can't actually supply
         working ones
      e979b3dd
    • Julius Plenz's avatar
      Supply “lazy initializers” in every intercepted function · 1a36b32e
      Julius Plenz authored
      The friendly folks at #musl say:
      
      20:52 < dalias> i think it's good to have both that and the ctor
      20:52 < Feh> This should increase robustness if it is in every function.
      20:52 < dalias> because...
      20:52 < dalias> several of these functions are required to be async-signal-safe
      20:53 < dalias> so if the first call happened to be from a signal handler,
         you'd be in trouble if you didn't already have the ctor
      20:54 < dalias> in theory another ctor in another lib or the app could run
         before yours and install and run a signal handler :-p but that's pretty
         unlikely and pathological
      20:54 < dalias> so i think having both the ctor and the lazy-init keeps you
         safe in situations that will arise in the real world
      1a36b32e
    • Julius Plenz's avatar
      7a0b64d5
    • Julius Plenz's avatar
      Space change · 4781a41b
      Julius Plenz authored
      4781a41b
    • Aleksandr's avatar
      We don't want to mix 64 bit file opens with 32 bit file opens; · 2acc4993
      Aleksandr authored
      (This fixes issue #3.)
      2acc4993
  8. 10 May, 2013 2 commits
  9. 06 May, 2013 1 commit
  10. 02 May, 2013 4 commits
  11. 29 Apr, 2013 6 commits
  12. 27 Apr, 2013 1 commit
  13. 24 Apr, 2013 1 commit
  14. 23 Apr, 2013 1 commit
  15. 22 Apr, 2013 2 commits
  16. 09 Apr, 2013 1 commit
  17. 05 Apr, 2013 1 commit
  18. 20 Mar, 2013 2 commits
  19. 16 Oct, 2012 1 commit
    • Julius Plenz's avatar
      Merge branch 'test' · 35a31c0e
      Julius Plenz authored
      * test:
        Add "ls" test
        Make it easy to add new tests
        Add make target “test”
        Add very basic test
      35a31c0e