1. 30 Nov, 2018 2 commits
  2. 29 Aug, 2018 6 commits
  3. 24 Aug, 2018 3 commits
  4. 17 Aug, 2018 3 commits
  5. 10 Aug, 2018 1 commit
  6. 07 Aug, 2018 1 commit
  7. 27 Jul, 2018 2 commits
  8. 26 Jul, 2018 2 commits
  9. 25 Jul, 2018 1 commit
  10. 24 Jul, 2018 1 commit
  11. 13 Jul, 2018 5 commits
  12. 28 Jun, 2018 2 commits
  13. 18 Jun, 2018 3 commits
  14. 14 Jun, 2018 2 commits
  15. 11 Jun, 2018 1 commit
  16. 07 Jun, 2018 2 commits
  17. 20 Apr, 2018 3 commits
    • Ongy's avatar
      tests: Add free-without-remove test · 0e6ac722
      Ongy authored
      [Derek Foreman <derekf@osg.samsung.com> moved this into resources-test]
      Reviewed-by: default avatarDerek Foreman <derekf@osg.samsung.com>
    • Derek Foreman's avatar
      server: Add special case destroy signal emitter · 5e0f7ad1
      Derek Foreman authored
      In the past much code (weston, efl/enlightenment, mutter) has
      freed structures containing wl_listeners from destroy handlers
      without first removing the listener from the signal.  As the
      destroy notifier only fires once, this has largely gone
      unnoticed until recently.
      Other code does not (Qt, wlroots) - and removes itself from
      the signal before free.
      If somehow a destroy signal is listened to by code from both
      kinds of callers, those that free will corrupt the lists for
      those that don't, and Bad Things will happen.
      To avoid these bad things, remove every item from the signal list
      during destroy emit, and put it in a list all its own.  This way
      whether the listener is removed or not has no impact on the
      following emits.
      Signed-off-by: default avatarDerek Foreman <derekf@osg.samsung.com>
      Reviewed-by: Simon Ser's avatarSimon Ser <contact@emersion.fr>
      Reviewed-by: Ongy's avatarMarkus Ongyerth <wl@ongy.net>
    • Derek Foreman's avatar
      tests: Test for use after free in resource destruction signals · 58ee271b
      Derek Foreman authored
      For years it's been common practice to free the object containing
      the wl_listener inside resource destruction notifiers, but not
      remove the listener from the list.
      That is: It's been safe to assume (when only one listener is present)
      that the wl_listener will never be touched again, since this is
      a destruction callback.
      Recently some patches were reviewed that made some positive changes
      to our internal signal handling code, but would've violated this
      assumption, and changed free()d memory in several existing compositors
      (weston, mutter, enlightenment).
      Since the breakage was extremely subtle, codify this assumption in
      a test case (thus promoting it to an ABI promise).
      Reviewed-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      Reviewed-by: Ongy's avatarMarkus Ongyerth <wl@ongy.net>
      Signed-off-by: default avatarDerek Foreman <derekf@osg.samsung.com>