simon-git: putty (pre-0.83): Simon Tatham

Commits to Tartarus hosted VCS tartarus-commits at lists.tartarus.org
Sat Jan 18 11:59:25 GMT 2025


TL;DR:
  ec158a2e Pageant: call signop_unlink from signop_free.

Repository:     https://git.tartarus.org/simon/putty.git
On the web:     https://git.tartarus.org/?p=simon/putty.git
Branch updated: pre-0.83
Committer:      Simon Tatham <anakin at pobox.com>
Date:           2025-01-18 11:59:25

commit ec158a2e19c9f81b3676e157652d93955789f423
web diff https://git.tartarus.org/?p=simon/putty.git;a=commitdiff;h=ec158a2e19c9f81b3676e157652d93955789f423;hp=19798515df5db3151370e331ca1312bb39fadf16
Author: Simon Tatham <anakin at pobox.com>
Date:   Sat Jan 18 11:03:24 2025 +0000

    Pageant: call signop_unlink from signop_free.
    
    A user reported that the following sequence of events leads to Pageant
    crashing:
    
     - load an encrypted key into Pageant for decryption later
     - attempt to use the key, so that Pageant prompts for the passphrase
     - before entering the passphrase, abort the attempt to use the
       key (e.g. by closing the PuTTY that was trying to use it)
     - now enter the passphrase at the Pageant prompt, once the need for
       it has gone away.
    
    Once the key is decrypted, unblock_requests_for_key() goes through the
    linked list of blocked PageantSignOp attached to the private key
    record it's just decrypted, and tries to unblock them. The
    PageantSignOp belonging to the aborted Pageant request is still linked
    on that list, which it shouldn't be, because it's also been freed by
    pageant_unregister_client when that traversed the separate linked list
    of PageantAsyncOp associated with that client connection. So the
    private key's list of blocked requests contained a stale pointer.
    
    Now PageantSignOp's implementation of the PageantAsyncOp free method
    makes sure to unlink the signop from any list it's on before freeing
    it.

 pageant.c | 1 +
 1 file changed, 1 insertion(+)



More information about the tartarus-commits mailing list