Author: asomers
Date: Wed Jul  5 15:50:41 2017
New Revision: 320679
URL: https://svnweb.freebsd.org/changeset/base/320679

Log:
  MFC r319900:
  
  sbin/ipfw: strcpy, strncpy => strlcpy
  
  Reported by:  Coverity
  CID:          1356162, 1356166
  Sponsored by: Spectra Logic Corp
  Differential Revision:        https://reviews.freebsd.org/D10662

Modified:
  stable/11/sbin/ipfw/dummynet.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sbin/ipfw/dummynet.c
==============================================================================
--- stable/11/sbin/ipfw/dummynet.c      Wed Jul  5 15:42:33 2017        
(r320678)
+++ stable/11/sbin/ipfw/dummynet.c      Wed Jul  5 15:50:41 2017        
(r320679)
@@ -805,8 +805,7 @@ read_bandwidth(char *arg, int *bandwidth, char *if_nam
                        warn("interface name truncated");
                namelen--;
                /* interface name */
-               strncpy(if_name, arg, namelen);
-               if_name[namelen] = '\0';
+               strlcpy(if_name, arg, namelen);
                *bandwidth = 0;
        } else {        /* read bandwidth value */
                int bw;
@@ -933,8 +932,7 @@ load_extra_delays(const char *filename, struct dn_prof
                } else if (!strcasecmp(name, ED_TOK_NAME)) {
                    if (profile_name[0] != '\0')
                        errx(ED_EFMT("duplicated token: %s"), name);
-                   strncpy(profile_name, arg, sizeof(profile_name) - 1);
-                   profile_name[sizeof(profile_name)-1] = '\0';
+                   strlcpy(profile_name, arg, sizeof(profile_name));
                    do_points = 0;
                } else if (!strcasecmp(name, ED_TOK_DELAY)) {
                    if (do_points)
@@ -1005,7 +1003,7 @@ load_extra_delays(const char *filename, struct dn_prof
        }
        p->samples_no = samples;
        p->loss_level = loss * samples;
-       strncpy(p->name, profile_name, sizeof(p->name));
+       strlcpy(p->name, profile_name, sizeof(p->name));
 }
 
 #ifdef NEW_AQM
@@ -1568,7 +1566,8 @@ end_mask:
                        fs->flags &= ~(DN_IS_RED|DN_IS_GENTLE_RED);
                        fs->flags |= DN_IS_AQM;
 
-                       strcpy(aqm_extra->name,av[-1]);
+                       strlcpy(aqm_extra->name, av[-1],
+                           sizeof(aqm_extra->name));
                        aqm_extra->oid.subtype = DN_AQM_PARAMS;
 
                        process_extra_parms(&ac, av, aqm_extra, tok);
@@ -1580,7 +1579,8 @@ end_mask:
                                errx(EX_DATAERR, "use type before 
fq_codel/fq_pie");
 
                        NEED(sch, "fq_codel/fq_pie is only for schd");
-                       strcpy(sch_extra->name,av[-1]);
+                       strlcpy(sch_extra->name, av[-1],
+                           sizeof(sch_extra->name));
                        sch_extra->oid.subtype = DN_SCH_PARAMS;
                        process_extra_parms(&ac, av, sch_extra, tok);
                        break;
@@ -1649,14 +1649,15 @@ end_mask:
                        l = strlen(av[0]);
                        if (l == 0 || l > 15)
                                errx(1, "type %s too long\n", av[0]);
-                       strcpy(sch->name, av[0]);
+                       strlcpy(sch->name, av[0], sizeof(sch->name));
                        sch->oid.subtype = 0; /* use string */
 #ifdef NEW_AQM
                        /* if fq_codel is selected, consider all tokens after it
                         * as parameters
                         */
                        if (!strcasecmp(av[0],"fq_codel") || 
!strcasecmp(av[0],"fq_pie")){
-                               strcpy(sch_extra->name,av[0]);
+                               strlcpy(sch_extra->name, av[0],
+                                   sizeof(sch_extra->name));
                                sch_extra->oid.subtype = DN_SCH_PARAMS;
                                process_extra_parms(&ac, av, sch_extra, tok);
                        } else {
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to