<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal;
font-family:"Calibri","sans-serif";
color:windowtext;}
span.EmailStyle18
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
{page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><span style='color:#1F497D'>Forwarding this on to the debian
bug tracking system, as there’s now a patch available (upstream has been
notified and asked to integrate it, but they haven’t checked mail yet today).<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>You can git pull the patch using
the information specified below from valera’s git daemon.<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'>- S<o:p></o:p></span></p>
<p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p>
<div>
<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>
<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> silc-devel-bounces@lists.silcnet.org
[mailto:silc-devel-bounces@lists.silcnet.org] <b>On Behalf Of </b>Skywing<br>
<b>Sent:</b> Saturday, November 08, 2008 7:17 PM<br>
<b>To:</b> silc-devel@lists.silcnet.org<br>
<b>Cc:</b> Kp<br>
<b>Subject:</b> [PATCH] Fix for crash on expired keyboard_redirect prompt (i.e.
crash on confirm server key change after disconnect from server)<o:p></o:p></span></p>
</div>
</div>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Hello,<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>The following changes ( available for git pulling @
git://valera-ext.nynaeve.net/silc.git ) fix the problem where an expired
keyboard_redirect prompt (e.g. to confirm a server key change) crashes the silc
client due to use after free. The fix did require substantial reworking
of how keyboard redirection works in the silc irssi frontend / silc irssi
plugin, as they’re now wrapped in a silc_async wrapper.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>I left the initial prompt for private key passphrase at boot
time alone, since it doesn’t really have a problem with expiration due to the
nature of it.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>If a keyboard prompt request is made while a stale prompt is
still pending, the new request is denied. Until the irssi folks fix their
keyboard_input_redirect API, this is the best we can do, as there’s no way to
cancel a pending keyboard_input_redirect call, and making a new such request
while a previous one was pending is a memory leak.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>A more elegant solution would have been to cancel the
outstanding keyboard_input_redirect request, but that requires major changes to
how irssi’s keyboard input redirect pluggable system works, so this will have
to do for now. (A bug about that API being kinda broken by design has
been entered in irssi’s bug tracking system.)<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>--<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>commit 5e7b2671da238a39001d1c4eb79f87ac56c2add2<o:p></o:p></p>
<p class=MsoNormal>Author: Skywing <skywing@valhallalegends.com><o:p></o:p></p>
<p class=MsoNormal>Date: Sat Nov 8 17:54:03 2008 -0500<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal> Fix crash on expired keyboard prompts<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>
<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>The following commits are also recommended to be included if
they’re not already:<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>commit 9ada9d21e5378510e745b837035eac5b7b73d14c<o:p></o:p></p>
<p class=MsoNormal>Author: Skywing <skywing@valhallalegends.com><o:p></o:p></p>
<p class=MsoNormal>Date: Sat Jun 28 00:21:51 2008 -0500<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal> Add reference counting to
SilcClientEntry/SilcServerEntry for getkey response.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal> This is necessary in case the entry goes
away before the user responds to the<o:p></o:p></p>
<p class=MsoNormal> keyboard input request. (Fix for
getkey crash if a user logs off before one<o:p></o:p></p>
<p class=MsoNormal> responds to the getkey prompt.)<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>commit 6fbdb9acb4b8f4f90632c5b317c4daf81f7b2ec4<o:p></o:p></p>
<p class=MsoNormal>Author: Skywing <skywing@valhallalegends.com><o:p></o:p></p>
<p class=MsoNormal>Date: Sat Jun 28 00:12:18 2008 -0500<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal> Fix initialization/deinitialization of
various Silc*Entry objects.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal> A number of init/deinit cases were
failing to clean up<o:p></o:p></p>
<p class=MsoNormal> certain resources.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>commit 9145000948d0df9c9db99beb8d2f0855ba88e40c<o:p></o:p></p>
<p class=MsoNormal>Author: Skywing <skywing@valhallalegends.com><o:p></o:p></p>
<p class=MsoNormal>Date: Fri Jun 27 23:44:03 2008 -0500<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal> Fix reference counting for
SilcServerEntry objects,<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal> analogous to the previous fixes for the
broken<o:p></o:p></p>
<p class=MsoNormal> reference counting for SilcChannelEntry
and<o:p></o:p></p>
<p class=MsoNormal> SilcClientEntry objects.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>- S<o:p></o:p></p>
</div>
</body>
</html>