[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#29450: 26.0.90; No check for nil in some filenotify functions
From: |
Glenn Morris |
Subject: |
bug#29450: 26.0.90; No check for nil in some filenotify functions |
Date: |
Tue, 09 Jan 2018 19:28:52 -0500 |
User-agent: |
Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) |
Eli Zaretskii wrote:
>> From: "John Wiegley" <johnw@gnu.org>
>> Date: Sat, 25 Nov 2017 22:18:07 -0800
>>
>> The documentation for find-file-name-handler says:
>>
>> find-file-name-handler is a built-in function in ‘C source code’.
>>
>> (find-file-name-handler FILENAME OPERATION)
>>
>> Return FILENAME’s handler function for OPERATION, if it has one.
>> Otherwise, return nil.
>>
>> However, several of the functions in filenotify use the return value of this
>> function without checking if it's nil or not:
>
> Maybe I'm blind, but I cannot find any place in filenotify where the
> handler is used without checking, including in the case you show:
>
>> (defun file-notify-rm-watch (descriptor)
>> "Remove an existing watch specified by its DESCRIPTOR.
>> DESCRIPTOR should be an object returned by `file-notify-add-watch'."
>> (when-let* ((watch (gethash descriptor file-notify-descriptors)))
>> (let ((handler (find-file-name-handler
>> (file-notify--watch-directory watch)
>> 'file-notify-rm-watch)))
>> (condition-case nil
>> (if handler <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
>> ;; A file name handler could exist even if there is no
>> ;; local file notification support.
>> (funcall handler 'file-notify-rm-watch descriptor)
>
> What am I missing?
>
>> I've been getting several errors with a backtrace like nil(48). This is
>> likely
>> because some package has done something wrong, but even still, filenotify
>> should be more defensive.
>
> Can you show a full backtrace like that?
Any update?
- bug#29450: 26.0.90; No check for nil in some filenotify functions,
Glenn Morris <=