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] = ',';
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to