firecat53 / keepmenu

Dmenu/Rofi frontend for Keepass databases
GNU General Public License v3.0
204 stars 32 forks source link

Crash if referenced item deleted #118

Open firecat53 opened 2 years ago

firecat53 commented 2 years ago

If a Keepass reference is used in an entry and the referenced item is deleted, keepmenu will crash with:

Traceback (most recent call last):
  File "/usr/lib64/python3.10/multiprocessing/process.py", line 315, in _bootstrap
    self.run()
  File "/home/firecat53/docs/family/scott/src/projects/keepmenu/keepmenu/keepmenu.py", line 305, in run
    self.dmenu_run()
  File "/home/firecat53/docs/family/scott/src/projects/keepmenu/keepmenu/keepmenu.py", line 373, in dmenu_run
    sel = view_all_entries(list(options), filtered_entries, self.database.dbase)
  File "/home/firecat53/docs/family/scott/src/projects/keepmenu/keepmenu/view.py", line 21, in view_all_entries
    kps = str("\n").join([kp_entry_pattern.format(j,
  File "/home/firecat53/docs/family/scott/src/projects/keepmenu/keepmenu/view.py", line 23, in <listcomp>
    i.deref('title') or ""),
  File "/home/firecat53/docs/family/scott/src/projects/keepmenu/venv/lib64/python3.10/site-packages/pykeepass/entry.py", line 119, in deref
    return self._kp.deref(getattr(self, attribute))
  File "/home/firecat53/docs/family/scott/src/projects/keepmenu/venv/lib64/python3.10/site-packages/pykeepass/pykeepass.py", line 478, in deref
    value = value.replace(ref, getattr(ref_entry, wanted_field))
AttributeError: 'NoneType' object has no attribute 'title'