<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent posts to Discussion</title><link>https://sourceforge.net/p/pupnp/discussion/</link><description>Recent posts to Discussion</description><atom:link href="https://sourceforge.net/p/pupnp/discussion/feed.rss" rel="self"/><language>en</language><lastBuildDate>Wed, 08 Apr 2020 13:16:17 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/pupnp/discussion/feed.rss" rel="self" type="application/rss+xml"/><item><title>Using SSL and the ssl context object</title><link>https://sourceforge.net/p/pupnp/discussion/569832/thread/43a2ef24ec/?limit=25#3357</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hi John,&lt;/p&gt;
&lt;p&gt;Lets continue in github, the current collaborating people are mostly there now.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br/&gt;
Marcelo.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Marcelo Roberto Jimenez</dc:creator><pubDate>Wed, 08 Apr 2020 13:16:17 -0000</pubDate><guid>https://sourceforge.nete53bdef6863912212655bf899a8efac4b4934dcf</guid></item><item><title>Using SSL and the ssl context object</title><link>https://sourceforge.net/p/pupnp/discussion/569832/thread/43a2ef24ec/?limit=25#297e</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;br/&gt;
I have a question about how OpenSSL works in libupnp. There is only 1 function, "UpnpInitSslContext()" that just enables it. If you pass it a "1", then libupnp will initialize the SSL context object "gSslCtx". If you pass in a "0", then the developer is responsible for creating the SSL context object.&lt;/p&gt;
&lt;p&gt;Are we now able to use "https://" instead of "http://" in our requests?&lt;/p&gt;
&lt;p&gt;There is a missing component, which is how to access the SSL context object within libupnp so that the developer can configure it. Below are 2 situations where a developer would need to get/set the SSL context object "gSslCtx".&lt;/p&gt;
&lt;p&gt;1)  If I let libupnp create the SSL context and initialize SSL, how can I tell the SSL object to use my certificate and keyfile for validation?&lt;br/&gt;
2)  If I create the SSL context, initialize SSL, and configure it with my certificate/keyfile, how do I pass this object to libupnp so that it can use it?&lt;/p&gt;
&lt;p&gt;Or am I not understanding the use of SSL in libupnp? I have already created an issue in GitHub #169.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;br/&gt;
John&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Smith</dc:creator><pubDate>Wed, 08 Apr 2020 11:43:49 -0000</pubDate><guid>https://sourceforge.netc29cc796450f9bbd74abf0819a841bcb528d8b24</guid></item><item><title>Compile error in list.h using libupnp 1.8.4</title><link>https://sourceforge.net/p/pupnp/discussion/569832/thread/d2ad3d4438/?limit=25#0f81</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hi John,&lt;/p&gt;
&lt;p&gt;Please open a new issue here: &lt;a href="https://github.com/pupnp/pupnp/issues" rel="nofollow"&gt;https://github.com/pupnp/pupnp/issues&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I am a bit confused, would you have a suggestion patch so that we can analyze?&lt;/p&gt;
&lt;p&gt;Please answer in github.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br/&gt;
Marcelo.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Marcelo Roberto Jimenez</dc:creator><pubDate>Sat, 04 Apr 2020 20:37:49 -0000</pubDate><guid>https://sourceforge.net0142563a3d98e14b5210b5538c0b23dcd43ec022</guid></item><item><title>Compile error in list.h using libupnp 1.8.4</title><link>https://sourceforge.net/p/pupnp/discussion/569832/thread/d2ad3d4438/?limit=25#a825</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hi, I have an app that links to libupnp v1.8.4 that is compiled on ATOM processor. I get the following error:&lt;br/&gt;
    list.h:177:35: error: 'UL' undeclared (first use in this function)&lt;br/&gt;
    entry-&amp;gt;next = (struct list_head)LISTPOISON1;&lt;br/&gt;
After sever days of debugging, it turns out there was a problem in poison.h where POISON_POINTER_DELTA is defined as AC(CONFIGILLEGALPOINTERVALUE, UL) because CONFIG_ILLEGAL_POINTER_VALUE is defined. &lt;/p&gt;
&lt;p&gt;When libupnp is compiled, CONFIG_ILLEGAL_POINTER_VALUE is not defined.  But my app has it defined and one of my .c files includes upnp.h, which then generates the above error.  I added "#include &amp;lt;linux const.h=""&amp;gt;" in the poison.h file and both libupnp and my library seems to build fine.&amp;lt;/linux&amp;gt;&lt;/p&gt;
&lt;p&gt;My app uses bitbake to build and we have an automated build system for our daily builds. This means that libupnp is fetched and built. Can this problem be patched so that I can include it in my build system? &lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">John Smith</dc:creator><pubDate>Fri, 03 Apr 2020 21:50:07 -0000</pubDate><guid>https://sourceforge.netce50660d25beeb80bb7e3585bfc5952a25eaa8cc</guid></item><item><title>openssl link errors</title><link>https://sourceforge.net/p/pupnp/discussion/569833/thread/441c2bccb3/?limit=25#5bd8</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;For me, adding the following to LDFLAGS worked:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;LDFLAGS="-L/usr/lib -lssl -lcrypto -lz"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;make check&lt;/code&gt; doesn't report any failure. and the resulting &lt;code&gt;libupnp.so&lt;/code&gt; reports the following:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;ldd&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;libupnp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;so&lt;/span&gt;
        &lt;span class="n"&gt;linux&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;vdso&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;so&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="n"&gt;x00007ffff07c5000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;libixml&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;so&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;libixml&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;so&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="n"&gt;x00007f5746afe000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;libssl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;so&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;libssl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;so&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="n"&gt;x00007f5746a69000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;libcrypto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;so&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;libcrypto&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;so&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="n"&gt;x00007f5746785000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;libz&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;so&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;libz&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;so&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="n"&gt;x00007f5746768000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;libpthread&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;so&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;libpthread&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;so&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="n"&gt;x00007f5746747000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;libc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;so&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;libc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;so&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="n"&gt;x00007f5746583000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;libdl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;so&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;libdl&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;so&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="n"&gt;x00007f574657c000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;lib64&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;ld&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;linux&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;x86&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;64&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;so&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="n"&gt;x00007f5746b67000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;I haven't tested on ARM, but on AMD64 this seems to be okay.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rémi Carrier</dc:creator><pubDate>Sat, 12 Oct 2019 16:05:14 -0000</pubDate><guid>https://sourceforge.net83965d45d7585a94e169e54c3461c394c7bce749</guid></item><item><title>openssl link errors</title><link>https://sourceforge.net/p/pupnp/discussion/569833/thread/441c2bccb3/?limit=25#0b27</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Trying to build upnp with --enable-open_ssl.  I have openssl-1.1.1c installed, but the upnp makefile is having problems linking.  Same issue on ubuntu and raspbian&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;/bin/bash ../../libtool  --tag=CC   --mode=link gcc  -pthread -g -O2 -Os -Wall   -o unittest unittest-main.o templates/unittest-FirstObject.o templates/unittest-templates.o templates/unittest-SecondObject.o ../../upnp/libupnp.la ../../ixml/libixml.la 
libtool: link: gcc -pthread -g -O2 -Os -Wall -o .libs/unittest unittest-main.o templates/unittest-FirstObject.o templates/unittest-templates.o templates/unittest-SecondObject.o  ../../upnp/.libs/libupnp.so /home/pi/libupnp-1.8.4/ixml/.libs/libixml.so ../../ixml/.libs/libixml.so -pthread
../../upnp/.libs/libupnp.so: undefined reference to `SSL_write'
../../upnp/.libs/libupnp.so: undefined reference to `SSL_free'
../../upnp/.libs/libupnp.so: undefined reference to `SSL_set_fd'
../../upnp/.libs/libupnp.so: undefined reference to `SSL_read'
../../upnp/.libs/libupnp.so: undefined reference to `SSL_new'
../../upnp/.libs/libupnp.so: undefined reference to `SSL_shutdown'
../../upnp/.libs/libupnp.so: undefined reference to `OPENSSL_init_crypto'
../../upnp/.libs/libupnp.so: undefined reference to `SSL_CTX_new'
../../upnp/.libs/libupnp.so: undefined reference to `OPENSSL_init_ssl'
../../upnp/.libs/libupnp.so: undefined reference to `SSL_connect'
../../upnp/.libs/libupnp.so: undefined reference to `SSL_CTX_free'
collect2: error: ld returned 1 exit status
Makefile:397: recipe for target 'unittest' failed
make[3]: *** [unittest] Error 1
make[3]: Leaving directory '/home/pi/libupnp-1.8.4/upnp/unittest'
Makefile:1648: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/pi/libupnp-1.8.4/upnp'
Makefile:498: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/pi/libupnp-1.8.4'
Makefile:399: recipe for target 'all' failed
make: *** [all] Error 2
pi@CM3:~/libupnp-1.8.4$ 
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rick Lesniak</dc:creator><pubDate>Thu, 08 Aug 2019 20:28:09 -0000</pubDate><guid>https://sourceforge.netc057e3a8511ed27353a24886a6def3a0f599c32c</guid></item><item><title>How can I disable logging (3GB+ log files being created)</title><link>https://sourceforge.net/p/pupnp/discussion/569833/thread/273c020b/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;The log files can grow to rediclous proportions and are unnecessary in my implementation. Is there any way to disable logging altogether?&lt;/p&gt;&lt;/div&gt;</description><pubDate>Tue, 05 Apr 2016 20:41:56 -0000</pubDate><guid>https://sourceforge.net90b034ba5b6475f6df54c7ab579d3da21913cb88</guid></item><item><title>libupnp double free bug</title><link>https://sourceforge.net/p/pupnp/discussion/569832/thread/28243030/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hi Jean-Francois,&lt;/p&gt;
&lt;p&gt;You are correct, I failed to recognize the pattern. I will revert it asap.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br/&gt;
Marcelo.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Marcelo Roberto Jimenez</dc:creator><pubDate>Fri, 08 Jan 2016 15:45:01 -0000</pubDate><guid>https://sourceforge.netad5265c030748311f9927176f49884ff0a53bad3</guid></item><item><title>libupnp double free bug</title><link>https://sourceforge.net/p/pupnp/discussion/569832/thread/28243030/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I saw the commit subsequent to this discussion, and it looks suspicious to me. &lt;/p&gt;
&lt;p&gt;The ct count serves as a &lt;em&gt;shared&lt;/em&gt; reference count for the object. When it goes to zero, the object is released. At this point, nobody else should be holding a reference to the object (else the count would be &amp;gt; 0). So having an additional alias_release() &lt;em&gt;is the bug&lt;/em&gt;, &lt;/p&gt;
&lt;p&gt;Having a shared counter is what allows doing a shallow copy of the object in webserver.c:alias_grab(). alias_grab() could be called on &lt;em&gt;any copy&lt;/em&gt; of the object, and still maintain the counter properly, so that the shared memory buffer  pointed to by the doc field is also properly managed.&lt;/p&gt;
&lt;p&gt;It's the same mechanism used by std::shared_ptr(). Read a description of this if you want a more authorized one. Of course C++ has the benefit of automated maintenance of the ref count because of the  triggering of constructors/destructors.&lt;/p&gt;
&lt;p&gt;Turning ct into a local int instead of a shared value removes the purpose of this counter.&lt;/p&gt;
&lt;p&gt;As far as I can see, the new code does not make much sense. Example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;after web_server_set_alias() is called, gAliasDoc has ct==1&lt;/li&gt;
&lt;li&gt;Someone calls alias_grab(). Their copy has ct == 2 but gAliasDoc.ct is still 1 !&lt;/li&gt;
&lt;li&gt;web_server_set_alias() is called again. gAliasDoc becomes 0, the doc is destroyed, but the caller of alias_grab() still has a reference to it, and this could then cause an invalid memory access.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the general case, memory leaks would also be possible, but probably not here as aliases are always a copy of gAliasDoc, not of an arbitrary copy. The ct of gAliasDoc is never incremented, so the issue will always be an early release of the resources.&lt;/p&gt;
&lt;p&gt;My suggestion would be to revert this change, which at the very minimum goes against the intention of the initial coder, and check the pairing of alias_grab()/alias_release() calls instead. And the thing which is missing as Nick noted, is a test case demonstrating that there is actually a problem.&lt;/p&gt;
&lt;p&gt;jf&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Jean-Francois Dockes</dc:creator><pubDate>Fri, 08 Jan 2016 09:12:54 -0000</pubDate><guid>https://sourceforge.netf441100fcf3e8a218e67715f1caed80bea681994</guid></item><item><title>libupnp double free bug</title><link>https://sourceforge.net/p/pupnp/discussion/569832/thread/28243030/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Homerzhou,&lt;/p&gt;
&lt;p&gt;Perfect observation. I will commit a patch, please test it and report.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br/&gt;
Marcelo.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Marcelo Roberto Jimenez</dc:creator><pubDate>Thu, 07 Jan 2016 21:05:01 -0000</pubDate><guid>https://sourceforge.nete50f37f5e91e6469bc38ee6c5cb3460cdd56d6a3</guid></item></channel></rss>