freebsd-ports/japanese/mnews/files/patch-aa
Munechika SUMIKAWA e563579165 - use ${OSVERSION} instead of ${USE_INET6}
- fix memoly leak when using getaddrinfo()
- support draft-ietf-drums-msg-fmt-07

Partly submitted by:	Hideaki YOSHIFUJI <yoshfuji@ecei.tohoku.ac.jp>
Approved by:		maintainer
2000-01-25 22:01:31 +00:00

58 lines
1.5 KiB
Plaintext

--- ../tcplib/tcplib.c.orig Fri Dec 17 02:27:36 1999
+++ ../tcplib/tcplib.c Sun Jan 16 07:37:37 2000
@@ -12,7 +12,7 @@
* Last Edit : 1999-12/17
* Author : MSRS3 Âð´Ö ðý
*
- * IPv6 support: 1999-11/19,22,30 by H.YOSHIFUJI
+ * IPv6 support: 1999-11/19,22,30, 12/04,16,24 by H.YOSHIFUJI
*/
#include "compat.h"
@@ -229,6 +229,7 @@
memset(&hints, 0, sizeof(hints));
hints.ai_family = PF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
+ res = res0 = NULL;
gaierr = getaddrinfo(server_name, serv_buff, &hints, &res0);
if (gaierr) {
if ((gaierr == EAI_SERVICE) &&
@@ -829,8 +830,7 @@
*port++ = '\0';
}
#ifdef INET6
- strncpy(hostport, host, sizeof(hostport));
- hostport[sizeof(hostport) - 1] = '\0';
+ strcpy(hostport, host); /* ok: strlen(hostport)+1 >= strlen(host)+1 */
#endif /* INET6 */
return(port);
}
@@ -862,7 +862,7 @@
hints.ai_family = PF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
hints.ai_flags = AI_CANONNAME;
-
+ res0 = NULL;
if (getaddrinfo(host, NULL, &hints, &res0) == 0) {
s = res0->ai_canonname;
}
@@ -876,12 +876,16 @@
if (canonname != (char*)NULL) {
t = strncpy(canonname, s, length);
} else {
+#ifdef DONT_HAVE_STRDUP
+ if (t = (s != (char *)NULL) ? ((char *)malloc(strlen(s)+1)) : (char *)NULL) strcpy(t,s);
+#else
t = strdup(s);
+#endif
}
+ }
#ifdef INET6
- freeaddrinfo(res0);
+ if(res0) freeaddrinfo(res0);
#endif /* INET6 */
- }
return(t);
}