Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 3 Oct 2007 21:32:39 GMT
From:      Fredrik Lindberg <fli@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 127151 for review
Message-ID:  <200710032132.l93LWdeT097476@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=127151

Change 127151 by fli@fli_nexus on 2007/10/03 21:32:25

	- Ignore empty packets.
	- Abort transmission if memory allocation fails.

Affected files ...

.. //depot/projects/soc2007/fli-mdns_sd/mdnsd/stack_mdns.c#7 edit

Differences ...

==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/stack_mdns.c#7 (text+ko) ====

@@ -622,6 +622,7 @@
 	struct mdns_packet *pkg;
 	struct mdns_buf *buf;
 	int i, error;
+	size_t len;
 	struct iovec *iov;
 	struct msghdr msg;
 
@@ -629,6 +630,7 @@
 	msg.msg_namelen = salen;
 	msg.msg_control = NULL;
 	msg.msg_controllen = 0;
+	len = 0;
 
 	TAILQ_FOREACH(pkg, &pc->pc_head, p_list) {
 		iov = malloc(sizeof(struct iovec) *
@@ -638,7 +640,12 @@
 			iov[i].iov_base = MDNS_BUF(buf);
 			iov[i].iov_len = MDNS_BUFLEN(buf);
 			i++;
+			len += MDNS_BUFLEN(buf);
 		}
+		if (len == 0) {
+			free(iov);
+			continue;
+		}
 
 		msg.msg_iov = iov;
 		msg.msg_iovlen = i;
@@ -646,7 +653,7 @@
 		error = sendmsg(sock, &msg, 0);
 		free(iov);
 		if (error < 0)
-			return (-1);
+			continue;
 	}
 	return (0);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200710032132.l93LWdeT097476>