f95db37 sss_ptr_hash: pass new hash_entry_t to custom delete callback

Authored and Committed by pbrezina 4 years ago
    sss_ptr_hash: pass new hash_entry_t to custom delete callback
    
    Setting `item->ptr = ptr` actually overwrote the original hash entry
    stored in the hash. If this entry is looked up in the delete callback
    it contains the overwritten value instead of the original.
    
    Steps to reproduce:
    ```
    1. Run sssd
    2. Call e.g. `id user-1`
    3. Terminate SSSD
    ```
    
    You will see these `Invalid data type` messages.
    
    (Snippet from domain log)
    ```
    [dp_client_destructor] (0x0400): Removed IFP client
    [sbus_signal_handler] (0x2000): Received D-Bus signal org.freedesktop.DBus.NameOwnerChanged on /org/freedesktop/DBus
    [sbus_signal_handler] (0x2000): Received D-Bus signal org.freedesktop.DBus.NameOwnerChanged on /org/freedesktop/DBus
    [sbus_senders_delete] (0x2000): Removing identity of sender [sssd.ifp]
    [sbus_issue_request_done] (0x0400): org.freedesktop.DBus.NameOwnerChanged: Success
    [sbus_senders_delete] (0x2000): Removing identity of sender [:1.5]
    [sbus_issue_request_done] (0x0400): org.freedesktop.DBus.NameOwnerChanged: Success
    [sbus_dispatch_reconnect] (0x0400): Connection lost. Terminating active requests.
    [sss_ptr_hash_check_type] (0x0020): Invalid data type detected. Expected [struct sss_ptr_hash_value], got [struct sbus_connection].
    [sss_ptr_hash_check_type] (0x0020): Invalid data type detected. Expected [struct sss_ptr_hash_value], got [struct sbus_connection].
    ```
    
    Reviewed-by: Michal Židek <mzidek@redhat.com>
    
        
file modified
+8 -7