So it's cryptui that is itself supplying the NULL value.
Further, the function comment you cite specifies that NULL is a valid input when symmetric encryption is not desired. The comment around the patch states "Ask for recipients if symmetric encryption was not requested or if the user didn't give a symmetric passphrase." It seems both appropriate and the intention of the code (by the comment) to pop up a key chooser dialog if the caller requests that symmetric encryption should not be used. However, if the caller ever passes a NULL then no dialog will be popped up.
It does seem like a logic error to me.
Finally, I will note that the latest version of seahorse-nautilus that I looked at in bzr does call cryptui_prompt_recipients_with_symmetric, does supply a non-null value for "symmetric", and does seem to work fine. However, it seems to me that callers to libcryptui's "cryptui_prompt_recipients" won't get the results from the function that they would expect.
I don't think that's the case, Tim.
The version of seahorse-nautilus in utopic, 3.8.0, is calling "cryptui_ prompt_ recipients" . This cryptui method consists of the following call:
return cryptui_ prompt_ recipients_ with_symmetric (keyset, title, signer, NULL);
So it's cryptui that is itself supplying the NULL value.
Further, the function comment you cite specifies that NULL is a valid input when symmetric encryption is not desired. The comment around the patch states "Ask for recipients if symmetric encryption was not requested or if the user didn't give a symmetric passphrase." It seems both appropriate and the intention of the code (by the comment) to pop up a key chooser dialog if the caller requests that symmetric encryption should not be used. However, if the caller ever passes a NULL then no dialog will be popped up.
It does seem like a logic error to me.
Finally, I will note that the latest version of seahorse-nautilus that I looked at in bzr does call cryptui_ prompt_ recipients_ with_symmetric, does supply a non-null value for "symmetric", and does seem to work fine. However, it seems to me that callers to libcryptui's "cryptui_ prompt_ recipients" won't get the results from the function that they would expect.