commit:     7b3f685d9e0370f61574f8a810c79dfc13024bce
Author:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Fri Jun  9 23:22:19 2017 +0000
Commit:     Andreas Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Fri Jun  9 23:22:44 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7b3f685d

net-libs/openslp: Revision bump for bug 617278

Package-Manager: Portage-2.3.6, Repoman-2.3.2

 .../openslp/files/openslp-2.0.0-namespace.patch    | 773 +++++++++++++++++++++
 net-libs/openslp/openslp-2.0.0-r5.ebuild           |  44 ++
 2 files changed, 817 insertions(+)

diff --git a/net-libs/openslp/files/openslp-2.0.0-namespace.patch 
b/net-libs/openslp/files/openslp-2.0.0-namespace.patch
new file mode 100644
index 00000000000..b5e81787740
--- /dev/null
+++ b/net-libs/openslp/files/openslp-2.0.0-namespace.patch
@@ -0,0 +1,773 @@
+# HG changeset patch
+# User John Calcote <john.calc...@gmail.com>
+# Date 1491588156 21600
+#      Fri Apr 07 12:02:36 2017 -0600
+# Node ID 51ed69107d096c5b9886954d89e0709975d5aa15
+# Parent  c1c294ce953e35f757020b01314cfc49556ccc0c
+BUG#149: cleanup libslp namespace; fix ctype function calls throughout.
+
+diff -ruN openslp-2.0.0.orig/common/slp_compare.c 
openslp-2.0.0/common/slp_compare.c
+--- openslp-2.0.0.orig/common/slp_compare.c    2017-06-10 01:15:33.214875294 
+0200
++++ openslp-2.0.0/common/slp_compare.c 2017-06-10 01:16:39.072878034 +0200
+@@ -83,9 +83,10 @@
+  *
+  * @internal
+  */
+-int strncasecmp(const char * s1, const char * s2, size_t len)
++int slp_strncasecmp(const char * s1, const char * s2, size_t len)
+ {
+-   while (*s1 && (*s1 == *s2 || tolower(*s1) == tolower(*s2)))
++   while (*s1 && (*s1 == *s2
++         || tolower((unsigned char)*s1) == tolower((unsigned char)*s2)))
+    {
+       len--;
+       if (len == 0)
+@@ -93,7 +94,7 @@
+       s1++;
+       s2++;
+    }
+-   return len? (int)(*(unsigned char *)s1 - (int)*(unsigned char *)s2): 0;
++   return len? (unsigned char)*s1 - (unsigned char)*s2: 0;
+ }
+ # endif
+ 
+@@ -113,11 +114,12 @@
+  *
+  * @internal
+  */
+-int strcasecmp(const char * s1, const char * s2)
++int slp_strcasecmp(const char * s1, const char * s2)
+ {
+-   while (*s1 && (*s1 == *s2 || tolower(*s1) == tolower(*s2)))
++   while (*s1 && (*s1 == *s2 
++         || tolower((unsigned char)*s1) == tolower((unsigned char)*s2)))
+       s1++, s2++;
+-   return (int)(*(unsigned char *)s1 - (int)*(unsigned char *)s2);
++   return (unsigned char)*s1 - (unsigned char)*s2;
+ }
+ # endif
+ #endif
+@@ -202,13 +204,13 @@
+    char * p = str, * ep = str + len;
+    while (p < ep)
+    {
+-      if (isspace(*p))
++      if (isspace((unsigned char)*p))
+       {
+-         char * ws2p = ++p;            /* Point ws2p to the second ws char. */
+-         while (p < ep && isspace(*p)) /* Scan till we hit a non-ws char. */
++         char * ws2p = ++p;                           /* Point ws2p to the 
second ws char. */
++         while (p < ep && isspace((unsigned char)*p)) /* Scan till we hit a 
non-ws char. */
+             p++;
+-         len -= p - ws2p;              /* Reduce the length by extra ws. */
+-         memmove(ws2p, p, ep - p);     /* Overwrite the extra white space. */
++         len -= p - ws2p;                             /* Reduce the length by 
extra ws. */
++         memmove(ws2p, p, ep - p);                    /* Overwrite the extra 
white space. */
+       }
+       p++;
+    }
+@@ -276,9 +278,9 @@
+    char *upd = dststr;
+    while (len > 0 && *srcstr)
+    {
+-      if (isspace(*srcstr))
++      if (isspace((unsigned char)*srcstr))
+       {
+-         while (isspace(*srcstr) && len > 0)
++         while (isspace((unsigned char)*srcstr) && len > 0)
+          {
+             ++srcstr, --len;
+          }
+@@ -311,7 +313,7 @@
+       }
+       else
+       {
+-         *upd++ = (char)tolower(*srcstr++);
++         *upd++ = (char)tolower((unsigned char)*srcstr++);
+          --len;
+       }
+    }
+@@ -340,15 +342,15 @@
+    char * cpy1, * cpy2;
+ 
+    /* Remove leading white space. */
+-   while (str1len && isspace(*str1))
++   while (str1len && isspace((unsigned char)*str1))
+       str1++, str1len--;
+-   while (str2len && isspace(*str2))
++   while (str2len && isspace((unsigned char)*str2))
+       str2++, str2len--;
+ 
+    /* Remove trailing white space. */
+-   while (str1len && isspace(str1[str1len - 1]))
++   while (str1len && isspace((unsigned char)str1[str1len - 1]))
+       str1len--;
+-   while (str2len && isspace(str2[str2len - 1]))
++   while (str2len && isspace((unsigned char)str2[str2len - 1]))
+       str2len--;
+ 
+    /*A quick check for empty strings before we start xmemduping and xfreeing*/
+diff -ruN openslp-2.0.0.orig/common/slp_compare.h 
openslp-2.0.0/common/slp_compare.h
+--- openslp-2.0.0.orig/common/slp_compare.h    2012-11-28 18:07:04.000000000 
+0100
++++ openslp-2.0.0/common/slp_compare.h 2017-06-10 01:16:39.072878034 +0200
+@@ -52,10 +52,12 @@
+ 
+ #ifndef _WIN32
+ # ifndef HAVE_STRNCASECMP
+-int strncasecmp(const char * s1, const char * s2, size_t len);
++int slp_strncasecmp(const char * s1, const char * s2, size_t len);
++# define strncasecmp slp_strncasecmp
+ # endif
+ # ifndef HAVE_STRCASECMP
+-int strcasecmp(const char * s1, const char * s2);
++int slp_strcasecmp(const char * s1, const char * s2);
++# define strcasecmp slp_strcasecmp
+ # endif
+ #endif
+ 
+diff -ruN openslp-2.0.0.orig/common/slp_dhcp.c openslp-2.0.0/common/slp_dhcp.c
+--- openslp-2.0.0.orig/common/slp_dhcp.c       2012-12-07 01:52:08.000000000 
+0100
++++ openslp-2.0.0/common/slp_dhcp.c    2017-06-10 01:16:39.073878034 +0200
+@@ -405,7 +405,7 @@
+  *    ENOTCONN (read error), ETIMEDOUT (read timeout), ENOMEM (out of
+  *    memory), or EINVAL (on parse error).
+  */
+-int DHCPGetOptionInfo(unsigned char * dhcpOptCodes, int dhcpOptCodeCnt, 
++int slp_DHCPGetOptionInfo(unsigned char * dhcpOptCodes, int dhcpOptCodeCnt, 
+       DHCPInfoCallBack * dhcpInfoCB, void * context)
+ {
+    uint32_t xid;
+@@ -539,7 +539,7 @@
+  * @return Zero on success, or a non-zero value to stop the caller from 
+  *    continuing to parse the buffer and call this routine.
+  */
+-int DHCPParseSLPTags(int tag, void * optdata, size_t optdatasz, 
++int slp_DHCPParseSLPTags(int tag, void * optdata, size_t optdatasz, 
+       void * context)
+ {
+    size_t cpysz, bufsz, dasize;
+@@ -707,8 +707,8 @@
+    ctx.scopelistlen = 0;
+    ctx.addrlistlen = 0;
+ 
+-   if ((err = DHCPGetOptionInfo(dhcpOpts, sizeof(dhcpOpts), 
+-         DHCPParseSLPTags, &ctx)) != 0)
++   if ((err = slp_DHCPGetOptionInfo(dhcpOpts, sizeof(dhcpOpts), 
++         slp_DHCPParseSLPTags, &ctx)) != 0)
+       return FAIL;
+ 
+    printf("ScopeList: [%.*s]\n", ctx.scopelistlen, ctx.scopelist);
+diff -ruN openslp-2.0.0.orig/common/slp_dhcp.h openslp-2.0.0/common/slp_dhcp.h
+--- openslp-2.0.0.orig/common/slp_dhcp.h       2012-11-28 18:07:04.000000000 
+0100
++++ openslp-2.0.0/common/slp_dhcp.h    2017-06-10 01:16:39.073878034 +0200
+@@ -131,10 +131,10 @@
+ typedef int DHCPInfoCallBack(int tag, void * optdata, 
+       size_t optdatasz, void * context);
+ 
+-int DHCPGetOptionInfo(unsigned char * dhcpOptCodes, int dhcpOptCodeCnt, 
++int slp_DHCPGetOptionInfo(unsigned char * dhcpOptCodes, int dhcpOptCodeCnt, 
+       DHCPInfoCallBack * dhcpInfoCB, void * context);
+ 
+-int DHCPParseSLPTags(int tag, void * optdata, size_t optdatasz, 
++int slp_DHCPParseSLPTags(int tag, void * optdata, size_t optdatasz, 
+       void * context);
+ 
+ /** DHCP interface context structure */
+diff -ruN openslp-2.0.0.orig/common/slp_iface.c 
openslp-2.0.0/common/slp_iface.c
+--- openslp-2.0.0.orig/common/slp_iface.c      2012-12-11 00:31:53.000000000 
+0100
++++ openslp-2.0.0/common/slp_iface.c   2017-06-10 01:16:39.073878034 +0200
+@@ -645,7 +645,7 @@
+  *
+  * @internal
+  */
+-int sizeof_ifreq(struct ifreq* ifr)
++static int sizeof_ifreq(struct ifreq* ifr)
+ {
+ #ifdef HAVE_SOCKADDR_STORAGE_SS_LEN
+   int len = ifr->ifr_addr.sa_len + sizeof(ifr->ifr_name);
+diff -ruN openslp-2.0.0.orig/common/slp_message.c 
openslp-2.0.0/common/slp_message.c
+--- openslp-2.0.0.orig/common/slp_message.c    2012-12-11 00:31:53.000000000 
+0100
++++ openslp-2.0.0/common/slp_message.c 2017-06-10 01:16:39.073878034 +0200
+@@ -58,7 +58,7 @@
+  * @return A 16-bit unsigned value in native format; the buffer pointer
+  *    is moved ahead by 2 bytes on return.
+  */
+-uint16_t GetUINT16(uint8_t ** cpp)
++uint16_t slp_GetUINT16(uint8_t ** cpp)
+ {
+    uint16_t rv = AS_UINT16(*cpp);
+    *cpp += 2;
+@@ -72,7 +72,7 @@
+  * @return A 32-bit unsigned value in native format; the buffer pointer
+  *    is moved ahead by 3 bytes on return.
+  */
+-uint32_t GetUINT24(uint8_t ** cpp)
++uint32_t slp_GetUINT24(uint8_t ** cpp)
+ {
+    uint32_t rv = AS_UINT24(*cpp);
+    *cpp += 3;
+@@ -86,7 +86,7 @@
+  * @return A 32-bit unsigned value in native format; the buffer pointer
+  *    is moved ahead by 4 bytes on return.
+  */
+-uint32_t GetUINT32(uint8_t ** cpp)
++uint32_t slp_GetUINT32(uint8_t ** cpp)
+ {
+    uint32_t rv = AS_UINT32(*cpp);
+    *cpp += 4;
+@@ -106,7 +106,7 @@
+  *    @p cppstring pointer; the buffer pointer is moved ahead by @p len bytes
+  *    on return.
+  */
+-char * GetStrPtr(uint8_t ** cpp, size_t len)
++char * slp_GetStrPtr(uint8_t ** cpp, size_t len)
+ {
+    char * sp = (char *)*cpp;
+    *cpp += len;
+@@ -120,7 +120,7 @@
+  *
+  * @note The buffer address is moved ahead by 2 bytes on return.
+  */
+-void PutUINT16(uint8_t ** cpp, size_t val)
++void slp_PutUINT16(uint8_t ** cpp, size_t val)
+ {
+    TO_UINT16(*cpp, val);
+    *cpp += 2;
+@@ -133,7 +133,7 @@
+  *
+  * @note The buffer address is moved ahead by 3 bytes on return.
+  */
+-void PutUINT24(uint8_t ** cpp, size_t val)
++void slp_PutUINT24(uint8_t ** cpp, size_t val)
+ {
+    TO_UINT24(*cpp, val);
+    *cpp += 3;
+@@ -146,7 +146,7 @@
+  *
+  * @note The buffer address is moved ahead by 4 bytes on return.
+  */
+-void PutUINT32(uint8_t ** cpp, size_t val)
++void slp_PutUINT32(uint8_t ** cpp, size_t val)
+ {
+    TO_UINT32(*cpp, val);
+    *cpp += 4;
+diff -ruN openslp-2.0.0.orig/common/slp_message.h 
openslp-2.0.0/common/slp_message.h
+--- openslp-2.0.0.orig/common/slp_message.h    2012-12-07 21:13:28.000000000 
+0100
++++ openslp-2.0.0/common/slp_message.h 2017-06-10 01:16:39.073878034 +0200
+@@ -188,14 +188,23 @@
+ #define PEEK_LENGTH(p) ((*p == 2) ? AS_UINT24(p + 2) : (*p == 1) ? 
AS_UINT16(p + 2) : 1)
+ 
+ /* buffer-based wire routines */
+-uint16_t GetUINT16(uint8_t ** cpp);
+-uint32_t GetUINT24(uint8_t ** cpp);
+-uint32_t GetUINT32(uint8_t ** cpp);
+-char * GetStrPtr(uint8_t ** cpp, size_t length);
++uint16_t slp_GetUINT16(uint8_t ** cpp);
++uint32_t slp_GetUINT24(uint8_t ** cpp);
++uint32_t slp_GetUINT32(uint8_t ** cpp);
++char * slp_GetStrPtr(uint8_t ** cpp, size_t length);
+ 
+-void PutUINT16(uint8_t ** cpp, size_t val);
+-void PutUINT24(uint8_t ** cpp, size_t val);
+-void PutUINT32(uint8_t ** cpp, size_t val);
++void slp_PutUINT16(uint8_t ** cpp, size_t val);
++void slp_PutUINT24(uint8_t ** cpp, size_t val);
++void slp_PutUINT32(uint8_t ** cpp, size_t val);
++
++#define GetUINT16 slp_GetUINT16
++#define GetUINT24 slp_GetUINT24
++#define GetUINT32 slp_GetUINT32
++#define GetStrPtr slp_GetStrPtr
++
++#define PutUINT16 slp_PutUINT16
++#define PutUINT24 slp_PutUINT24
++#define PutUINT32 slp_PutUINT32
+ 
+ /** SLPHeader structure and associated functions */
+ typedef struct _SLPHeader
+diff -ruN openslp-2.0.0.orig/common/slp_net.c openslp-2.0.0/common/slp_net.c
+--- openslp-2.0.0.orig/common/slp_net.c        2012-12-11 00:31:53.000000000 
+0100
++++ openslp-2.0.0/common/slp_net.c     2017-06-10 01:16:39.073878034 +0200
+@@ -76,18 +76,20 @@
+ #endif
+ 
+ /** IPv6 SLP address constants */
+-const struct in6_addr in6addr_srvloc_node       = IN6ADDR_SRVLOC_NODE_INIT;
+-const struct in6_addr in6addr_srvloc_link       = IN6ADDR_SRVLOC_LINK_INIT;
+-const struct in6_addr in6addr_srvloc_site       = IN6ADDR_SRVLOC_SITE_INIT;
+-const struct in6_addr in6addr_srvlocda_node     = IN6ADDR_SRVLDA_NODE_INIT;
+-const struct in6_addr in6addr_srvlocda_link     = IN6ADDR_SRVLDA_LINK_INIT;
+-const struct in6_addr in6addr_srvlocda_site     = IN6ADDR_SRVLDA_SITE_INIT;
+-const struct in6_addr in6addr_service_node_mask = IN6ADDR_SVCNOD_MASK_INIT;
+-const struct in6_addr in6addr_service_link_mask = IN6ADDR_SVCLNK_MASK_INIT;
+-const struct in6_addr in6addr_service_site_mask = IN6ADDR_SVCSIT_MASK_INIT;
+-const struct in6_addr slp_in6addr_any           = SLP_IN6ADDR_ANY_INIT;
+-const struct in6_addr slp_in6addr_loopback      = SLP_IN6ADDR_LOOPBACK_INIT;
++const struct in6_addr in6addr_srvloc_node   = IN6ADDR_SRVLOC_NODE_INIT;
++const struct in6_addr in6addr_srvloc_link   = IN6ADDR_SRVLOC_LINK_INIT;
++const struct in6_addr in6addr_srvloc_site   = IN6ADDR_SRVLOC_SITE_INIT;
+ 
++const struct in6_addr in6addr_srvlocda_node = IN6ADDR_SRVLDA_NODE_INIT;
++const struct in6_addr in6addr_srvlocda_link = IN6ADDR_SRVLDA_LINK_INIT;
++const struct in6_addr in6addr_srvlocda_site = IN6ADDR_SRVLDA_SITE_INIT;
++
++const struct in6_addr slp_in6addr_any      = SLP_IN6ADDR_ANY_INIT;
++const struct in6_addr slp_in6addr_loopback = SLP_IN6ADDR_LOOPBACK_INIT;
++
++static const struct in6_addr in6addr_service_node_mask = 
IN6ADDR_SVCNOD_MASK_INIT;
++static const struct in6_addr in6addr_service_link_mask = 
IN6ADDR_SVCLNK_MASK_INIT;
++static const struct in6_addr in6addr_service_site_mask = 
IN6ADDR_SVCSIT_MASK_INIT;
+ 
+ /** Returns the scope embedded in the IPv6 multicast address.
+  *
+diff -ruN openslp-2.0.0.orig/common/slp_net.h openslp-2.0.0/common/slp_net.h
+--- openslp-2.0.0.orig/common/slp_net.h        2012-12-11 00:31:53.000000000 
+0100
++++ openslp-2.0.0/common/slp_net.h     2017-06-10 01:16:39.073878034 +0200
+@@ -65,9 +65,6 @@
+ extern const struct in6_addr in6addr_srvlocda_node;
+ extern const struct in6_addr in6addr_srvlocda_link;
+ extern const struct in6_addr in6addr_srvlocda_site;
+-extern const struct in6_addr in6addr_service_node_mask;
+-extern const struct in6_addr in6addr_service_link_mask;
+-/* extern const struct in6_addr in6addr_service_site_mask; */
+ 
+ /** IN6 "Any" and "Loopback" address initializer macros */
+ #ifdef _AIX
+diff -ruN openslp-2.0.0.orig/common/slp_network.c 
openslp-2.0.0/common/slp_network.c
+--- openslp-2.0.0.orig/common/slp_network.c    2013-06-08 04:50:38.000000000 
+0200
++++ openslp-2.0.0/common/slp_network.c 2017-06-10 01:16:39.073878034 +0200
+@@ -364,7 +364,7 @@
+  * @returns A const pointer to @p dst on success; or NULL on failure, 
+  *    and sets @a errno to EAFNOSUPPORT.
+  */ 
+-const char * saddr_ntop(const void * src, char * dst, size_t dstsz)
++const char * slp_saddr_ntop(const void * src, char * dst, size_t dstsz)
+ {
+    switch (((const struct sockaddr *)src)->sa_family)
+    {
+diff -ruN openslp-2.0.0.orig/common/slp_network.h 
openslp-2.0.0/common/slp_network.h
+--- openslp-2.0.0.orig/common/slp_network.h    2012-11-28 18:07:04.000000000 
+0100
++++ openslp-2.0.0/common/slp_network.h 2017-06-10 01:16:39.073878034 +0200
+@@ -62,7 +62,7 @@
+       size_t bufsz, void * peeraddr, struct timeval * timeout);  
+ int SLPNetworkRecvMessage(sockfd_t sockfd, int socktype, SLPBuffer * buf,
+       void * peeraddr, struct timeval * timeout); 
+-const char * saddr_ntop(const void * src, char * dst, size_t dstsz);
++const char * slp_saddr_ntop(const void * src, char * dst, size_t dstsz);
+ 
+ void SLPNetworkSetSndRcvBuf(sockfd_t sock);
+ /*! @} */
+diff -ruN openslp-2.0.0.orig/common/slp_v1message.c 
openslp-2.0.0/common/slp_v1message.c
+--- openslp-2.0.0.orig/common/slp_v1message.c  2012-12-11 00:31:53.000000000 
+0100
++++ openslp-2.0.0/common/slp_v1message.c       2017-06-10 01:16:39.073878034 
+0200
+@@ -275,10 +275,10 @@
+          || (tmp = strstr(srvreg->attrlist, "scope")) != 0)
+    {
+       tmp += 5;
+-      while (*tmp && (isspace(*tmp) || *tmp == '='))
++      while (*tmp && (isspace((unsigned char)*tmp) || *tmp == '='))
+          tmp++;      /* Find start of scope string. */
+       srvreg->scopelist = tmp;
+-      while (*tmp && !isspace(*tmp) && *tmp != ')')
++      while (*tmp && !isspace((unsigned char)*tmp) && *tmp != ')')
+          tmp++;      /* Find end of scope string. */
+       srvreg->scopelistlen = tmp - srvreg->scopelist;
+       /** @todo Should we convert to UTF-8 here? */
+diff -ruN openslp-2.0.0.orig/common/slp_xmalloc.c 
openslp-2.0.0/common/slp_xmalloc.c
+--- openslp-2.0.0.orig/common/slp_xmalloc.c    2017-06-10 01:15:33.209875294 
+0200
++++ openslp-2.0.0/common/slp_xmalloc.c 2017-06-10 01:18:31.228882700 +0200
+@@ -106,7 +106,7 @@
+  *
+  * @return A pointer to the newly allocated memory block.
+  */
+-void * _xmalloc(const char * file, int line, size_t size)
++void * slp_xmalloc(const char * file, int line, size_t size)
+ {
+    xallocation_t * x;
+ 
+@@ -161,10 +161,10 @@
+  *
+  * @return A pointer to the newly allocated and cleared memory block.
+  */
+-void * _xcalloc(const char * file, int line, int numblks, size_t size)
++void * slp_xcalloc(const char * file, int line, int numblks, size_t size)
+ {
+    size_t blksz = numblks * size;
+-   void * ptr = _xmalloc(file, line, blksz);
++   void * ptr = slp_xmalloc(file, line, blksz);
+    if (ptr)
+       memset(ptr, 0, blksz);
+    return ptr;
+@@ -183,16 +183,16 @@
+  *    NULL for @p buf actually allocates a new buffer, passing 0 
+  *    for @p size actually allocates a new buffer.
+  */
+-void * _xrealloc(const char * file, int line, void * ptr, size_t size)
++void * slp_xrealloc(const char * file, int line, void * ptr, size_t size)
+ {
+    xallocation_t * x;
+ 
+    if (!ptr)
+-      return _xmalloc(file, line, size);
++      return slp_xmalloc(file, line, size);
+ 
+    if (!size)
+    {
+-      _xfree(file, line, ptr);
++      slp_xfree(file, line, ptr);
+       return 0;
+    }
+ 
+@@ -202,11 +202,11 @@
+       void * newptr = ptr;
+       if (x->size != size)
+       {
+-         newptr = _xmalloc(file, line, size);
++         newptr = slp_xmalloc(file, line, size);
+          if (newptr == 0)
+             return 0;
+          memcpy(newptr, ptr, x->size);
+-         _xfree(file, line, x);
++         slp_xfree(file, line, x);
+       }
+       return newptr;
+    }
+@@ -227,10 +227,10 @@
+  * @return A pointer to the duplicated string, or NULL on memory
+  *    allocation failure.
+  */
+-char * _xstrdup(const char * file, int line, const char * str)
++char * slp_xstrdup(const char * file, int line, const char * str)
+ {
+    size_t strsz = strlen(str) + 1;
+-   char * ptr = _xmalloc(file, line, strsz);
++   char * ptr = slp_xmalloc(file, line, strsz);
+    if (ptr)
+       memcpy(ptr, str, strsz);
+    return ptr;
+@@ -246,9 +246,9 @@
+  * @return A pointer to the duplicated memory block, or NULL on memory
+  *    allocation failure.
+  */
+-void * _xmemdup(const char * file, int line, const void * ptr, size_t size)
++void * slp_xmemdup(const char * file, int line, const void * ptr, size_t size)
+ {
+-   void * cpy = _xmalloc(file, line, size);
++   void * cpy = slp_xmalloc(file, line, size);
+    if (cpy)
+       memcpy(cpy, ptr, size);
+    return cpy;
+@@ -260,7 +260,7 @@
+  * @param[in] line - The line number where @e xfree was called.
+  * @param[in] ptr - The address of the block to be free'd.
+  */
+-void _xfree(const char * file, int line, void * ptr)
++void slp_xfree(const char * file, int line, void * ptr)
+ {
+    xallocation_t * x;
+ 
+@@ -292,7 +292,7 @@
+  * @return A boolean true (1) on success, or false (0) the log file 
+  *    fails to open.
+ */
+-int xmalloc_init(const char * filename, size_t freemem)
++int slp_xmalloc_init(const char * filename, size_t freemem)
+ {
+    G_xmalloc_fh = fopen(filename, "w");
+    if (G_xmalloc_fh == 0)
+@@ -305,7 +305,7 @@
+  *
+  * @return 0
+  */
+-int xmalloc_report(void)
++int slp_xmalloc_report(void)
+ {
+    xallocation_t * x;
+ 
+@@ -327,7 +327,7 @@
+ 
+ /** Deinitialize the debug memory allocator.
+  */
+-void xmalloc_deinit(void)
++void slp_xmalloc_deinit(void)
+ {
+    xmalloc_report();
+ 
+@@ -352,7 +352,7 @@
+  * @return A pointer to the duplicated memory block, or NULL on memory
+  *    allocation failure.
+  */
+-void * _xmemdup(const void * ptr, size_t size)
++void * slp_xmemdup(const void * ptr, size_t size)
+ {
+    void * cpy = malloc(size);
+    if (cpy)
+diff -ruN openslp-2.0.0.orig/common/slp_xmalloc.h 
openslp-2.0.0/common/slp_xmalloc.h
+--- openslp-2.0.0.orig/common/slp_xmalloc.h    2012-11-28 18:07:04.000000000 
+0100
++++ openslp-2.0.0/common/slp_xmalloc.h 2017-06-10 01:16:39.073878034 +0200
+@@ -63,34 +63,38 @@
+    size_t size;
+ } xallocation_t;
+ 
+-void * _xmalloc(const char * file, int line, size_t size);
+-void * _xcalloc(const char * file, int line, int numblks, size_t size);
+-void * _xrealloc(const char * file, int line, void * ptr, size_t size);
+-char * _xstrdup(const char * file, int line, const char * str);
+-void * _xmemdup(const char * file, int line, const void * ptr, size_t size);
+-void   _xfree(const char * file, int line, void * ptr);
+-
+-int xmalloc_init(const char * filename, size_t freemem);
+-int xmalloc_report(void);
+-void xmalloc_deinit(void);
+-
+-#define xmalloc(s)      _xmalloc(__FILE__,__LINE__,(s))
+-#define xcalloc(n,s)    _xcalloc(__FILE__,__LINE__,(n),(s))
+-#define xrealloc(p,s)   _xrealloc(__FILE__,__LINE__,(p),(s))
+-#define xfree(p)        _xfree(__FILE__,__LINE__,(p))
+-#define xstrdup(p)      _xstrdup(__FILE__,__LINE__,(p))
+-#define xmemdup(p,s)    _xmemdup(__FILE__,__LINE__,(p),(s))
++void * slp_xmalloc(const char * file, int line, size_t size);
++void * slp_xcalloc(const char * file, int line, int numblks, size_t size);
++void * slp_xrealloc(const char * file, int line, void * ptr, size_t size);
++char * slp_xstrdup(const char * file, int line, const char * str);
++void * slp_xmemdup(const char * file, int line, const void * ptr, size_t 
size);
++void   slp_xfree(const char * file, int line, void * ptr);
++
++int slp_xmalloc_init(const char * filename, size_t freemem);
++int slp_xmalloc_report(void);
++void slp_xmalloc_deinit(void);
++
++#define xmalloc(s)      slp_xmalloc(__FILE__,__LINE__,(s))
++#define xcalloc(n,s)    slp_xcalloc(__FILE__,__LINE__,(n),(s))
++#define xrealloc(p,s)   slp_xrealloc(__FILE__,__LINE__,(p),(s))
++#define xfree(p)        slp_xfree(__FILE__,__LINE__,(p))
++#define xstrdup(p)      slp_xstrdup(__FILE__,__LINE__,(p))
++#define xmemdup(p,s)    slp_xmemdup(__FILE__,__LINE__,(p),(s))
++
++#define xmalloc_init    slp_xmalloc_init
++#define xmalloc_report  slp_xmalloc_report
++#define xmalloc_deinit  slp_xmalloc_deinit
+ 
+ #else    /* ?DEBUG */
+ 
+-void * _xmemdup(const void * ptr, size_t srclen);
++void * slp_xmemdup(const void * ptr, size_t srclen);
+ 
+ #define xmalloc   malloc
+ #define xcalloc   calloc
+ #define xrealloc  realloc
+ #define xfree     free
+ #define xstrdup   strdup
+-#define xmemdup   _xmemdup
++#define xmemdup   slp_xmemdup
+ 
+ #endif   /* ?DEBUG */
+ 
+diff -ruN openslp-2.0.0.orig/libslp/libslp.h openslp-2.0.0/libslp/libslp.h
+--- openslp-2.0.0.orig/libslp/libslp.h 2012-11-28 18:07:04.000000000 +0100
++++ openslp-2.0.0/libslp/libslp.h      2017-06-10 01:16:39.073878034 +0200
+@@ -263,11 +263,15 @@
+ 
+ void KnownDAFreeAll(void);
+ 
+-void PutL16String(uint8_t ** cpp, const char * str, size_t strsz);
+-size_t SizeofURLEntry(size_t urllen, size_t urlauthlen);
+-void PutURLEntry(uint8_t ** cpp, uint16_t lifetime, const char * url,
++void slp_PutL16String(uint8_t ** cpp, const char * str, size_t strsz);
++size_t slp_SizeofURLEntry(size_t urllen, size_t urlauthlen);
++void slp_PutURLEntry(uint8_t ** cpp, uint16_t lifetime, const char * url,
+       size_t urllen, const uint8_t * urlauth, size_t urlauthlen);
+ 
++#define PutL16String   slp_PutL16String
++#define SizeofURLEntry slp_SizeofURLEntry
++#define PutURLEntry    slp_PutURLEntry
++
+ int LIBSLPPropertyInit(char const * gconffile);
+ void LIBSLPPropertyCleanup();
+ 
+diff -ruN openslp-2.0.0.orig/libslp/libslp_knownda.c 
openslp-2.0.0/libslp/libslp_knownda.c
+--- openslp-2.0.0.orig/libslp/libslp_knownda.c 2012-12-12 18:38:52.000000000 
+0100
++++ openslp-2.0.0/libslp/libslp_knownda.c      2017-06-10 01:16:39.074878034 
+0200
+@@ -520,7 +520,7 @@
+    *ctx.scopelist = 0;
+    ctx.addrlistlen = 0;
+ 
+-   DHCPGetOptionInfo(dhcpOpts, sizeof(dhcpOpts), DHCPParseSLPTags, &ctx);
++   slp_DHCPGetOptionInfo(dhcpOpts, sizeof(dhcpOpts), slp_DHCPParseSLPTags, 
&ctx);
+ 
+    if (!*ctx.scopelist)
+    {
+diff -ruN openslp-2.0.0.orig/libslp/libslp_network.c 
openslp-2.0.0/libslp/libslp_network.c
+--- openslp-2.0.0.orig/libslp/libslp_network.c 2013-06-08 04:50:38.000000000 
+0200
++++ openslp-2.0.0/libslp/libslp_network.c      2017-06-10 01:16:39.074878034 
+0200
+@@ -142,7 +142,7 @@
+  *
+  * @internal
+  */
+-void timeval_subtract(struct timeval *lhs, struct timeval *rhs)
++static void timeval_subtract(struct timeval *lhs, struct timeval *rhs)
+ {
+     lhs->tv_sec -= rhs->tv_sec;
+     lhs->tv_usec -= rhs->tv_usec;
+@@ -162,7 +162,7 @@
+  *
+  * @internal
+  */
+-void timeval_add(struct timeval *lhs, struct timeval *rhs)
++static void timeval_add(struct timeval *lhs, struct timeval *rhs)
+ {
+     lhs->tv_sec += rhs->tv_sec;
+     lhs->tv_usec += rhs->tv_usec;
+@@ -183,7 +183,7 @@
+  *
+  * @return the size
+  */
+-size_t CalcBufferSize(int v1, char buftype, size_t langsize, size_t 
prlistlen, size_t bufsize)
++static size_t CalcBufferSize(int v1, char buftype, size_t langsize, size_t 
prlistlen, size_t bufsize)
+ {
+    size_t size = 0;
+ 
+diff -ruN openslp-2.0.0.orig/libslp/libslp_parse.c 
openslp-2.0.0/libslp/libslp_parse.c
+--- openslp-2.0.0.orig/libslp/libslp_parse.c   2012-12-11 00:31:53.000000000 
+0100
++++ openslp-2.0.0/libslp/libslp_parse.c        2017-06-10 01:16:39.074878034 
+0200
+@@ -102,10 +102,10 @@
+  *    next buffer position after the URL Entry written on exit.
+  *
+  * @remarks Currently OpenSLP only handles a single authentication
+- *    block. To handle more than this, PutURLEntry would have to take
++ *    block. To handle more than this, slp_PutURLEntry would have to take
+  *    arrays of @p urlauth and @p urlauthlen values.
+  */
+-void PutURLEntry(uint8_t ** cpp, uint16_t lifetime, const char * url,
++void slp_PutURLEntry(uint8_t ** cpp, uint16_t lifetime, const char * url,
+       size_t urllen, const uint8_t * urlauth, size_t urlauthlen)
+ {
+    uint8_t * curpos = *cpp;
+diff -ruN openslp-2.0.0.orig/libslpattr/libslpattr.c 
openslp-2.0.0/libslpattr/libslpattr.c
+--- openslp-2.0.0.orig/libslpattr/libslpattr.c 2012-12-11 00:31:53.000000000 
+0100
++++ openslp-2.0.0/libslpattr/libslpattr.c      2017-06-10 01:16:39.074878034 
+0200
+@@ -134,8 +134,8 @@
+  */
+ static char unescape(char d1, char d2)
+ {
+-   SLP_ASSERT(isxdigit((int) d1));
+-   SLP_ASSERT(isxdigit((int) d2));
++   SLP_ASSERT(isxdigit((unsigned char)d1));
++   SLP_ASSERT(isxdigit((unsigned char)d2));
+ 
+    if ((d1 >= 'A') && (d1 <= 'F'))
+       d1 = d1 - 'A' + 0x0A;
+@@ -184,8 +184,8 @@
+          /*** Check that the characters are legal, and that the value has
+           * not been truncated.
+           ***/
+-         if ((i + 2 < len) && isxdigit((int) src[i + 1]) && isxdigit((int)
+-                                                                  src[i + 2]))
++         if ((i + 2 < len) && isxdigit((unsigned char)src[i + 1]) 
++               && isxdigit((unsigned char)src[i + 2]))
+          {
+             *write = unescape(src[i + 1], src[i + 2]);
+             i += 2;
+@@ -2049,14 +2049,14 @@
+ 
+ 
+    /***** Check integer *****/
+-   if (*val == '-' || isdigit((int) * val))
++   if (*val == '-' || isdigit((unsigned char)*val))
+    {
+       /*** Verify. ***/
+       SLPBoolean is_int = SLP_TRUE; /* Flag true if the attr is an int. */
+       for (i = 1; i < len; i++)
+       {
+          /* We start at 1 since first char has already been checked. */
+-         if (!isdigit((int) val[i]))
++         if (!isdigit((unsigned char)val[i]))
+          {
+             is_int = SLP_FALSE;
+             break;
+diff -ruN openslp-2.0.0.orig/slpd/slpd_knownda.c 
openslp-2.0.0/slpd/slpd_knownda.c
+--- openslp-2.0.0.orig/slpd/slpd_knownda.c     2012-12-11 00:31:53.000000000 
+0100
++++ openslp-2.0.0/slpd/slpd_knownda.c  2017-06-10 01:16:39.074878034 +0200
+@@ -488,7 +488,7 @@
+    *ctx.scopelist = 0;
+    ctx.addrlistlen = 0;
+ 
+-   DHCPGetOptionInfo(dhcpOpts, sizeof(dhcpOpts), DHCPParseSLPTags, &ctx);
++   slp_DHCPGetOptionInfo(dhcpOpts, sizeof(dhcpOpts), slp_DHCPParseSLPTags, 
&ctx);
+ 
+    alp = ctx.addrlist;
+    while (ctx.addrlistlen >= 4)
+diff -ruN openslp-2.0.0.orig/slpd/slpd_main.c openslp-2.0.0/slpd/slpd_main.c
+--- openslp-2.0.0.orig/slpd/slpd_main.c        2012-12-11 00:31:53.000000000 
+0100
++++ openslp-2.0.0/slpd/slpd_main.c     2017-06-10 01:16:39.074878034 +0200
+@@ -358,10 +358,11 @@
+    if (fd)
+    {
+       memset(pidstr,0,14);
+-      (void)fread(pidstr,13,1,fd);
+-      pid = atoi(pidstr);
+-      if (pid && kill(pid, 0) == 0)
+-         return -1;  /* we are already running */
++      if (fread(pidstr,13,1,fd) > 0) {
++         pid = atoi(pidstr);
++         if (pid && kill(pid, 0) == 0)
++            return -1;  /* we are already running */
++      }
+       fclose(fd);
+    }
+    return 0;
+@@ -449,7 +450,8 @@
+       int i;
+ 
+       /* change directory to root */
+-      (void)chdir("/");
++      if (chdir("/") != 0)
++         ; /* TODO: ... */
+ 
+       /* close all open file handles */
+       for (i = 0; i < 8192; i++)
+diff -ruN openslp-2.0.0.orig/slpd/slpd_predicate.c 
openslp-2.0.0/slpd/slpd_predicate.c
+--- openslp-2.0.0.orig/slpd/slpd_predicate.c   2012-12-11 00:31:53.000000000 
+0100
++++ openslp-2.0.0/slpd/slpd_predicate.c        2017-06-10 01:16:39.075878034 
+0200
+@@ -161,7 +161,7 @@
+       /* Verify escape sequences. */
+       if (seq_pos == 1 || seq_pos == 2)
+       {
+-         if (!isxdigit((int) escaped[i]))
++         if (!isxdigit((unsigned char)escaped[i]))
+             return 0;
+ 
+          if (seq_pos == 2)
+@@ -198,7 +198,7 @@
+  */
+ static int unescape_check(char d1, char d2, char * val) 
+ {
+-   if (!isxdigit((int) d1) || !isxdigit((int) d2))
++   if (!isxdigit((unsigned char)d1) || !isxdigit((unsigned char)d2))
+       return 0;
+ 
+    if ((d1 >= 'A') && (d1 <= 'F'))
+@@ -285,10 +285,10 @@
+ 
+       if (unesc != verbatim[ver_i])        /* quick check for equality*/
+       {
+-         if (!isascii(unesc)         /* case insensitive check */
+-               || !isalpha(unesc)
+-               || !isalpha(verbatim[ver_i])
+-               || tolower(unesc) != tolower(verbatim[ver_i]))
++         if (!isascii((unsigned char)unesc)         /* case insensitive check 
*/
++               || !isalpha((unsigned char)unesc)
++               || !isalpha((unsigned char)verbatim[ver_i])
++               || tolower((unsigned char)unesc) != tolower((unsigned 
char)verbatim[ver_i]))
+             return FR_EVAL_FALSE;
+       }
+ 
+@@ -866,7 +866,7 @@
+    int i;
+ 
+    for (i = 0; str[i] != 0; i++)
+-      if (!((!isdigit((int) str[i])) || str[i] == '-'))
++      if (!((!isdigit((unsigned char)str[i])) || str[i] == '-'))
+          return 0;
+ 
+    return 1;

diff --git a/net-libs/openslp/openslp-2.0.0-r5.ebuild 
b/net-libs/openslp/openslp-2.0.0-r5.ebuild
new file mode 100644
index 00000000000..db368f045b1
--- /dev/null
+++ b/net-libs/openslp/openslp-2.0.0-r5.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools systemd
+
+DESCRIPTION="An open-source implementation of Service Location Protocol"
+HOMEPAGE="http://www.openslp.org/";
+SRC_URI="mirror://sourceforge/openslp/${P}.tar.gz"
+
+LICENSE="BSD GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh 
~sparc ~x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="libressl"
+RESTRICT="test"
+
+DEPEND="
+       !libressl? ( dev-libs/openssl:0= )
+       libressl? ( dev-libs/libressl:0= )
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-2.0.0-cflags.patch
+       "${FILESDIR}"/${PN}-2.0.0-CVE-2016-4912.patch
+       "${FILESDIR}"/${PN}-2.0.0-CVE-2012-4428.patch
+       "${FILESDIR}"/${PN}-2.0.0-CVE-2016-7567.patch
+       "${FILESDIR}"/${PN}-2.0.0-namespace.patch
+)
+
+src_prepare() {
+       default
+       eautoreconf
+}
+
+src_install() {
+       make DESTDIR="${D}" install || die "make install failed"
+       dodoc AUTHORS FAQ ChangeLog NEWS README* THANKS
+       rm -rfv "${D}"/usr/doc
+       dohtml -r .
+       newinitd "${FILESDIR}"/slpd-init slpd
+       systemd_dounit "${FILESDIR}"/slpd.service
+}

Reply via email to