See https://bugs.archlinux.org/task/24866
Comment by Anton Komolov (xRemaLx) - Tuesday, 21 February 2012, 06:17 GMT
On my system (64bit), I use this patch for a month. No more segfaults :)
Problem is solved by the patch: mixing 32-bit and 64 bit pointers. This happens 
if the compiler does not find a definition of the standard functions in header 
files. On a 64 bit system automatically uses the 64 bit function, even though 
the program is 32 bit.


--- src/cds.c	2007-12-09 16:03:36.000000000 +0300
+++ src/cds.c	2012-01-26 05:14:03.317360310 +0400
@@ -20,6 +20,8 @@
  */
 
 #include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
 #include <upnp/upnp.h>
 #include <upnp/upnptools.h>
 
--- src/cms.c	2007-12-09 16:03:36.000000000 +0300
+++ src/cms.c	2012-01-26 05:15:33.236991387 +0400
@@ -20,6 +20,7 @@
  */
 
 #include <stdlib.h>
+#include <string.h>
 #include <upnp/upnp.h>
 #include <upnp/upnptools.h>
 
--- src/http.c	2012-01-26 05:27:44.073992912 +0400
+++ src/http.c	2012-01-26 05:17:31.756505126 +0400
@@ -25,6 +25,7 @@
 #include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 #include <unistd.h>
 #include <errno.h>
 
--- src/presentation.c	2007-12-09 16:03:36.000000000 +0300
+++ src/presentation.c	2012-01-26 05:19:41.635972259 +0400
@@ -19,6 +19,8 @@
  */
 
 #include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
 
 #if HAVE_LANGINFO_CODESET
 # include <langinfo.h>
--- src/mime.c	2007-12-09 16:03:36.000000000 +0300
+++ src/mime.c	2012-01-26 05:23:54.251602492 +0400
@@ -21,6 +21,7 @@
 
 #include <stdlib.h>
 #include <string.h>
+#include <stdio.h>
 
 #include "mime.h"
 #include "ushare.h"
--- src/services.c	2007-12-09 16:03:36.000000000 +0300
+++ src/services.c	2012-01-26 05:21:28.572200186 +0400
@@ -20,6 +20,7 @@
  */
 
 #include <stdlib.h>
+#include <string.h>
 #include <upnp/upnp.h>
 #include <upnp/upnptools.h>