Subject: Re: bug#36101: 26.1; epg--status-*SIG does not always precent decode

From: Christophe TROESTLER <[email-masked]>
Date: Wed, 23 Oct 2019 08:25:21 +0000

Hi,

On 22 October 2019 at 16:49 CEST, Lars Ingebrigtsen <[email-masked]> wrote:
>
> Christophe TROESTLER <[email-masked]> writes:
>
>> I received a message with a S/MIME signature that verified correctly (using gpgsm).  However, the button has undecoded percent escapes.  It turns out that the culprit is the function `epg--status-*SIG' which, when (epg-context-protocol context) is 'CMS and `epg-dn-from-string' triggers an error, does not perform the decoding of percent escapes.
>>
>> If, in the body of `epg-dn-from-string', one changes
>>
>> 	(condition-case nil
>> 	    (if (eq (epg-context-protocol context) 'CMS)
>> 		(setq user-id (epg-dn-from-string user-id))
>> 	      (setq user-id (epg--decode-percent-escape user-id)))
>> 	  (error))
>>
>> into
>>
>> 	(condition-case nil
>> 	    (if (eq (epg-context-protocol context) 'CMS)
>> 		(setq user-id (epg-dn-from-string user-id)))
>> 	  (error))
>> 	(setq user-id (epg--decode-percent-escape user-id))
>>
>> it works (provided http://debbugs.gnu.org/cgi/bugreport.cgi?bug=36098 has been fixed first).  I do not think `epg--decode-percent-escape' can trigger `error' but it is protected everywhere it is used so maybe one should write
>
> Do you have an example here to display the bug?

I had a look to the code and it changed since this report.  IIRC, verifying my signature (with which I sign this message) used to display this problem.

Best,
C.