Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Aug 2012 01:43:01 +0000 (UTC)
From:      Jamie Gritton <jamie@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r239601 - head/usr.sbin/jail
Message-ID:  <201208230143.q7N1h1FQ034131@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jamie
Date: Thu Aug 23 01:43:01 2012
New Revision: 239601
URL: http://svn.freebsd.org/changeset/base/239601

Log:
  Remember that I'm using length-defined strings in parameters:
  
   Remove a bogus null terminator when stripping the netmask from
   IP addresses.  This was causing later addresses in a comma-separated
   string to disappear.
  
   Use memcpy instead of strcpy.  This could just cause Bad Things.
  
  PR:		170832
  MFC after:	1 week

Modified:
  head/usr.sbin/jail/config.c

Modified: head/usr.sbin/jail/config.c
==============================================================================
--- head/usr.sbin/jail/config.c	Thu Aug 23 00:39:08 2012	(r239600)
+++ head/usr.sbin/jail/config.c	Thu Aug 23 01:43:01 2012	(r239601)
@@ -597,8 +597,7 @@ check_intparams(struct cfjail *j)
 					    "ip4.addr: bad netmask \"%s\"", cs);
 					error = -1;	
 				}
-				*cs = '\0';
-				s->len = cs - s->s + 1;
+				s->len = cs - s->s;
 			}
 		}
 	}
@@ -621,8 +620,7 @@ check_intparams(struct cfjail *j)
 					    cs);
 					error = -1;	
 				}
-				*cs = '\0';
-				s->len = cs - s->s + 1;
+				s->len = cs - s->s;
 			}
 		}
 	}
@@ -714,7 +712,7 @@ import_params(struct cfjail *j)
 			value = alloca(vallen);
 			cs = value;
 			TAILQ_FOREACH_SAFE(s, &p->val, tq, ts) {
-				strcpy(cs, s->s);
+				memcpy(cs, s->s, s->len);
 				if (ts != NULL) {
 					cs += s->len + 1;
 					cs[-1] = ',';



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