i've test last tools on openbsd 4.0-stable/i386 with 107.6 and here,
some remarks
* compiling error
$ gmake os=openbsdmDNSPosix.c: In function
`SocketDataReady':mDNSPosix.c:517: error: structure has no member named
`NotAnInteger'mDNSPosix.c: In function
`ParseDNSServers':mDNSPosix.c:664: warning: Array size (10) smaller than
format string size (11) (arg 3)gmake: *** [objects/prod/mDNSPosix.c.o]
Error 1
=> flag HAVE_BROKEN_RECVDSTADDR is no more necessary
--- mDNSShared/uds_daemon.c.orig Sat Jan 13 16:44:17 2007
+++ mDNSShared/uds_daemon.c Sat Jan 13 16:46:01 2007
@@ -1014,7 +1014,8 @@
// determine whether sa_len is defined on a particular platform.
laddr.sun_len = sizeof(struct sockaddr_un);
#endif
- strcpy(laddr.sun_path, MDNS_UDS_SERVERPATH);
+ strncpy(laddr.sun_path, MDNS_UDS_SERVERPATH, sizeof(laddr.sun_path) - 1);
+ laddr.sun_path[sizeof(laddr.sun_path) - 1] = '\0';
ret = bind(listenfd, (struct sockaddr *) &laddr, sizeof(laddr));
umask(mask);
if (ret < 0)
diff -urN mDNSPosix.orig/Identify.c mDNSPosix/Identify.c
--- mDNSPosix.orig/Identify.c Sat Jan 13 16:11:50 2007
+++ mDNSPosix/Identify.c Sat Jan 13 16:21:05 2007
@@ -444,8 +444,10 @@
if (StopNow == 2) break;
}
#endif
- else
- strcpy(hostname, arg);
+ else {
+ strncpy(hostname, arg, sizeof(hostname) - 1);
+ hostname[sizeof(hostname) - 1] = '\0';
+ }
// Now we have the host name; get its A, AAAA, and HINFO
if (hostname[0]) DoQuery(&q, hostname, kDNSQType_ANY, &target, InfoCallback);
diff -urN mDNSPosix.orig/Makefile mDNSPosix/Makefile
--- mDNSPosix.orig/Makefile Sat Jan 13 16:11:50 2007
+++ mDNSPosix/Makefile Sat Jan 13 16:14:34 2007
@@ -341,7 +341,7 @@
else
ifeq ($(os),openbsd)
-CFLAGS_OS = -DHAVE_BROKEN_RECVDSTADDR
+CFLAGS_OS =
LDCONFIG = ldconfig
else
diff -urN mDNSPosix.orig/ProxyResponder.c mDNSPosix/ProxyResponder.c
--- mDNSPosix.orig/ProxyResponder.c Sat Jan 13 16:11:50 2007
+++ mDNSPosix/ProxyResponder.c Sat Jan 13 16:22:02 2007
@@ -242,7 +242,8 @@
int len = strlen(argv[0]);
printf("STR: %s\n", argv[0]);
bptr[0] = len;
- strcpy((char*)(bptr+1), argv[0]);
+ strncpy((char*)(bptr+1), argv[0], sizeof((char*)(bptr+1)) - 1);
+ (char*)(bptr+1)[sizeof((char*)(bptr+1)) - 1] = '\0';
bptr += 1 + len;
argc--;
argv++;
diff -urN mDNSPosix.orig/mDNSPosix.c mDNSPosix/mDNSPosix.c
--- mDNSPosix.orig/mDNSPosix.c Sat Jan 13 16:11:50 2007
+++ mDNSPosix/mDNSPosix.c Sat Jan 13 16:29:24 2007
@@ -1467,7 +1467,8 @@
// On the Posix platform this maps directly to the ANSI C strcpy.
mDNSexport void mDNSPlatformStrCopy(const void *src, void *dst)
{
- strcpy((char *)dst, (char *)src);
+ strncpy((char *)dst, (char *)src, sizeof((char *)dst) - 1);
+ ((char *)dst)[sizeof((char *)dst) - 1] = '\0';
}
// mDNS core calls this routine to get the length of a C string.
diff -urN mDNSPosix.orig/mDNSUNP.c mDNSPosix/mDNSUNP.c
--- mDNSPosix.orig/mDNSUNP.c Sat Jan 13 16:11:50 2007
+++ mDNSPosix/mDNSUNP.c Sat Jan 13 16:26:31 2007
@@ -188,7 +188,7 @@
if(plen>bits_in_block) ones_in_block=bits_in_block;
else ones_in_block=plen;
block = ones & (ones << (bits_in_block-ones_in_block));
- i==0 ? sprintf(addr, "%x", block) : sprintf(addr, "%s:%x", addr, block);
+ i==0 ? snprintf(addr, sizeof(addr), "%x", block) : snprintf(addr, sizeof(addr), "%s:%x", addr, block);
plen -= ones_in_block;
}
}
@@ -234,7 +234,7 @@
*ifipnext = ifi; /* prev points to this new one */
ifipnext = &ifi->ifi_next; /* pointer to next one goes here */
- sprintf(addr6, "%s:%s:%s:%s:%s:%s:%s:%s",
+ snprintf(addr6, sizeof(addr6), "%s:%s:%s:%s:%s:%s:%s:%s",
addr[0],addr[1],addr[2],addr[3],
addr[4],addr[5],addr[6],addr[7]);
diff -urN mDNSPosix.orig/nss_mdns.c mDNSPosix/nss_mdns.c
--- mDNSPosix.orig/nss_mdns.c Sat Jan 13 16:11:50 2007
+++ mDNSPosix/nss_mdns.c Sat Jan 13 16:25:45 2007
@@ -1445,7 +1445,8 @@
}
result->hostent->h_name =
- strcpy (result->header->hostname, fullname);
+ strncpy (result->header->hostname, fullname, sizeof(result->header->hostname) - 1);
+ result->header->hostname[sizeof(result->header->hostname) - 1] = '\0';
return result->header->hostname;
}
@@ -2384,9 +2385,9 @@
while (i > 0)
{
i--;
- curr += sprintf (curr, "%d.", in_addr_a [i]);
+ curr += snprintf (curr, sizeof(curr), "%d.", in_addr_a [i]);
}
- sprintf (curr, "in-addr.arpa");
+ snprintf (curr, sizeof(curr), "in-addr.arpa");
return buf;
}
@@ -2415,7 +2416,7 @@
// Special handling for first
if (i % 2)
{
- curr += sprintf (curr, "%d.", (in_addr_a [i/2] >> 4) & 0x0F);
+ curr += snprintf (curr, sizeof(curr), "%d.", (in_addr_a [i/2] >> 4) & 0x0F);
}
i >>= 1;
// Convert i to bytes (divide by 2)
@@ -2426,9 +2427,9 @@
i--;
val = in_addr_a [i];
- curr += sprintf (curr, "%x.%x.", val & 0x0F, (val >> 4) & 0x0F);
+ curr += snprintf (curr, sizeof(curr), "%x.%x.", val & 0x0F, (val >> 4) & 0x0F);
}
- sprintf (curr, "ip6.arpa");
+ snprintf (curr, sizeof(curr), "ip6.arpa");
return buf;
}
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Bonjour-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/bonjour-dev/email@hidden
This email sent to email@hidden