** Description changed:

  [Impact]
  
- On Hirsute/Impish, update-notifier can crash when attempting to run
- hooks.
+ On hirsute/impish, update-notifier can crash when attempting to run hooks.
+ This issue is the #2 crash on update-notifier in hirsute, presently (and
+ maybe some of the others).  I would call this a severe regression.
  
  [Test Case]
  
  Create a file 'bug'
  
  'Name: bug
  Priority: Low
  Command: "/bin/true"
  DisplayIf: /bin/true
  Description: update notifier bug'
  
  and copy it to /var/lib/update-notifier/user.d
  
  [Where problems could occur]
  
  This is not the most absolute minimal version of this fix.
- If the minimal version of the fix is desired, I can provide that, which 
should be a +2/-2 diff.
- The fix changeset includes other glib usage improvements which sound good 
from a maintainability perspective and may even close other yet unknown bugs 
but add their own risk of regressions if said maintainability was not done 
correctly.
+ If the minimal version of the fix is desired, I can provide that, which
+ should be a +2/-2 diff.  (I don't want to confuse the current proposal.)
+ The fix changeset being proposed includes other glib usage improvements
+ which sound really good from a maintainability perspective and may even
+ close other yet unknown bugs but add their own risk of regressions if
+ said maintainability was not done correctly.
+ 
+ The original idea was to address a problem where we offer to run a
+ command, and the user would click the button to do so, but then nothing
+ would happen because the command wasn't on the system.  If the parsing
+ of this command is invalid, then valid hooks may be filtered.
+ 
+ It's possible for the command to contain arguments, and to be quoted (or
+ not), or to not be the full command path.  Variables for such testing
+ include:
+ * rely on path lookup or fully qualified path supplied in command
+ * quoted or unquoted or mixed quotes (quote the command and args
+   outside of the quotes)
+ * arguments or no
+ * presence or absence of actual command
+ See attached tarball for the resulting 20 tests (4 redundant tests pruned).
+ All the 'present' hooks are valid, 'absent' hooks should be skipped.
+ 
+ In an attempt to stave off further memory safety problems I've analyzed
+ this version with valgrind.  valgrind is able to observe several
+ problems in the unfixed version, whereas the fixed version only
+ complains about some items in glib that appear to be unrelated to this
+ change.
+ 
+ I've got some unit test code as well but haven't integrated that yet to
+ the update-notifier codebase.
  
  [Original Bug Report Description]
  
- The issue is new using https://code.launchpad.net/~dbungert/update-
- notifier/+git/update-notifier/+merge/397367 , the previous revision
- didn't have the issue
+ The issue is new using
+ 
https://code.launchpad.net/~dbungert/update-notifier/+git/update-notifier/+merge/397367
+ , the previous revision didn't have the issue
  
  * Create a file 'bug'
  
  'Name: bug
  Priority: Low
  Command: "/bin/true"
  DisplayIf: /bin/true
  Description: update notifier bug'
  
  and copy it to /var/lib/update-notifier/user.d
  
  ->  update-notifier segfaults
  
  (gdb) bt
  #0  0x00007ffff718c769 in __GI___libc_free (mem=0x5550000aa7f9) at 
malloc.c:3288
  #1  0x00007ffff7365215 in g_strfreev (str_array=<optimized out>) at 
../../../glib/gstrfuncs.c:2553
  #2  g_strfreev (str_array=0x5555555d9e00) at ../../../glib/gstrfuncs.c:2546
  #3  0x000055555555dd2d in hook_command_exists (cmd=0x555555702600 
"\"/usr/bin/eog\"") at hooks.c:137
  #4  0x000055555555fd6e in is_hook_relevant (hook_file=0x555555829e7b 
"apt-file.update-notifier")
      at hooks.c:717
  #5  0x000055555555ffb1 in check_update_hooks (ta=0x5555556c9a20) at 
hooks.c:781
  #6  0x0000555555560715 in hook_tray_icon_init (ta=0x5555556c9a20) at 
hooks.c:969
  #7  0x000055555555cd77 in tray_icons_init (un=0x55555562c3e0,
  
  It seems likely to be the error on top of the weekly report for hirsute
  but that's missing a stacktrace
  
  One comment in addition on the change there, was the env split + iterate
  over pathdirs basically a re-implementation of
- https://developer.gnome.org/glib/stable/glib-Miscellaneous-Utility-
- Functions.html#g-find-program-in-path ? If there is particular reason to
- do that I would recommend just using the glib function instead (which
- might also fix the issue as a side effect, I didn't check)
+ 
https://developer.gnome.org/glib/stable/glib-Miscellaneous-Utility-Functions.html#g-find-program-in-path
+ ? If there is particular reason to do that I would recommend just using
+ the glib function instead (which might also fix the issue as a side
+ effect, I didn't check)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1926298

Title:
  Segfault added in the recent changes

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/update-notifier/+bug/1926298/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to