svn commit: r206152 - head/lib/libc/net

Hajimu UMEMOTO ume at FreeBSD.org
Sun Apr 4 07:02:10 UTC 2010


Author: ume
Date: Sun Apr  4 07:02:10 2010
New Revision: 206152
URL: http://svn.freebsd.org/changeset/base/206152

Log:
  Stop adding trailing '\n'.  The servent_unpack() doesn't expect
  lines terminated with '\n'.
  
  MFC after:	2 weeks

Modified:
  head/lib/libc/net/getservent.c

Modified: head/lib/libc/net/getservent.c
==============================================================================
--- head/lib/libc/net/getservent.c	Sat Apr  3 23:51:41 2010	(r206151)
+++ head/lib/libc/net/getservent.c	Sun Apr  4 07:02:10 2010	(r206152)
@@ -594,15 +594,13 @@ nis_servent(void *retval, void *mdata, v
 			break;
 		};
 
-		/* we need a room for additional \n symbol */
-		if (bufsize <=
-		    resultbuflen + 1 + _ALIGNBYTES + sizeof(char *)) {
+		if (bufsize <= resultbuflen + _ALIGNBYTES + sizeof(char *)) {
 			*errnop = ERANGE;
 			rv = NS_RETURN;
 			break;
 		}
 
-		aliases = (char **)_ALIGN(&buffer[resultbuflen + 2]);
+		aliases = (char **)_ALIGN(&buffer[resultbuflen + 1]);
 		aliases_size =
 		    (buffer + bufsize - (char *)aliases) / sizeof(char *);
 		if (aliases_size < 1) {
@@ -611,13 +609,8 @@ nis_servent(void *retval, void *mdata, v
 			break;
 		}
 
-		/*
-		 * servent_unpack expects lines terminated with \n --
-		 * make it happy
-		 */
 		memcpy(buffer, resultbuf, resultbuflen);
-		buffer[resultbuflen] = '\n';
-		buffer[resultbuflen + 1] = '\0';
+		buffer[resultbuflen] = '\0';
 
 		if (servent_unpack(buffer, serv, aliases, aliases_size,
 		    errnop) != 0) {


More information about the svn-src-all mailing list