<div dir="ltr">Of course, thanks!<br><div style><div><br></div></div><div style><span style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13px"><br></span></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Mon, Jun 3, 2013 at 11:33 AM, Aleksey Sanin <span dir="ltr"><<a href="mailto:aleksey@aleksey.com" target="_blank">aleksey@aleksey.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Good catch. I think I found it<br>
<br>
<a href="https://git.gnome.org/browse/xmlsec/commit/?id=46896def4dfe16b16131869b03db000314413e25" target="_blank">https://git.gnome.org/browse/xmlsec/commit/?id=46896def4dfe16b16131869b03db000314413e25</a><br>
<br>
Can you try it? I don't have windows env these days.<br>
<br>
Aleksey<br>
<div class="im"><br>
On 6/3/13 7:00 AM, Alexwell Sandro wrote:<br>
> I found memory leak with xmlSecTmplX509DataAddSubjectName function.<br>
><br>
> I used example from: Signing a dynamicaly created template. sign2.c.<br>
>  <<a href="http://www.aleksey.com/xmlsec/api/xmlsec-examples-sign-dynamimc-template.html" target="_blank">http://www.aleksey.com/xmlsec/api/xmlsec-examples-sign-dynamimc-template.html</a>><br>
><br>
</div>> *To generate template:*<br>
<div class="im">> (...)<br>
> xmlNodePtr keyInfoNode = xmlSecTmplSignatureEnsureKeyInfo(signNode, NULL);<br>
> xmlNodePtr x509DataNode = xmlSecTmplKeyInfoAddX509Data(keyInfoNode);<br>
> xmlSecTmplX509DataAddSubjectName(x509DataNode);<br>
> xmlSecTmplX509DataAddCertificate(x509DataNode);<br>
> (...)<br>
><br>
</div>> *Result:*<br>
<div class="im">> (...)<br>
> <ds:KeyInfo><br>
> <ds:X509Data><br>
> <ds:X509SubjectName/><br>
> <ds:X509Certificate/><br>
> </ds:X509Data><br>
> </ds:KeyInfo><br>
> (...)<br>
><br>
</div>> *When sign the template occurs memory leak.*<br>
<div class="im">><br>
> Data:<br>
>     43 00 4E 00    3D 00 41 00    4C 00 45 00    58 00 20 00<br>
> C.N.=.A. L.E.X...<br>
> ...<br>
><br>
</div>> *When I remove "xmlSecTmplX509DataAddSubjectName"*<br>
<div class="im">> xmlNodePtr keyInfoNode = xmlSecTmplSignatureEnsureKeyInfo(signNode, NULL);<br>
> xmlNodePtr x509DataNode = xmlSecTmplKeyInfoAddX509Data(keyInfoNode);<br>
</div>> /// xmlSecTmplX509DataAddSubjectName(x509DataNode);/<br>
<div class="im">> xmlSecTmplX509DataAddCertificate(x509DataNode);<br>
><br>
> No memory leak detected!<br>
><br>
</div>> *The same problem when verify the signature.*<br>
<div class="im">> With <ds:X509SubjectName> Two Memory Leaks.<br>
><br>
>  Data:<br>
>     43 4E 3D 41    4C 45 58 20    53 41 4E 44    52 4F 20 44     CN=ALEX. S<br>
> ...<br>
><br>
>  Data:<br>
>     43 4E 3D 41    4C 45 58 20    53 41 4E 44    52 4F 20 44     CN=ALEX. S<br>
> ...<br>
><br>
</div>> *Without  <ds:X509SubjectName> No Memory Leak.*<br>
><br>
> *Another detail, when I use:*<br>
<div class="im">> xmlNodePtr keyInfoNode = xmlSecTmplSignatureEnsureKeyInfo(signNode, NULL);<br>
> xmlNodePtr x509DataNode = xmlSecTmplKeyInfoAddX509Data(keyInfoNode);<br>
><br>
</div>> *result:*<br>
> <KeyInfo><br>
> <X509Data><br>
> <X509Certificate>MIIE3zCCA8e...<br>
><br>
> *When I use:*<br>
<div class="im">> xmlNodePtr keyInfoNode = xmlSecTmplSignatureEnsureKeyInfo(signNode, NULL);<br>
> xmlNodePtr x509DataNode = xmlSecTmplKeyInfoAddX509Data(keyInfoNode);<br>
> xmlSecTmplX509DataAddCertificate(x509DataNode);<br>
><br>
</div>> *result with breakline:*<br>
> <KeyInfo><br>
> <X509Data><br>
><br>
> <X509Certificate>MIIE3zCCA8e...<br>
><br>
> *When I use:*<br>
<div class="im">> xmlNodePtr x509DataNode = xmlSecTmplKeyInfoAddX509Data(keyInfoNode);<br>
> xmlSecTmplX509DataAddSubjectName(x509DataNode);<br>
><br>
</div>> *result with breakline:*<br>
> <X509Data><br>
><br>
> <X509SubjectName>CN=ALEX...<br>
><br>
> *How to fix the memory leak?*<br>
<div class="HOEnZb"><div class="h5">><br>
> tags: windows 7 64 bits, visual studio 2010.<br>
</div></div></blockquote></div><br></div>