diff options
author | asomers <asomers@FreeBSD.org> | 2017-07-07 15:35:42 +0000 |
---|---|---|
committer | asomers <asomers@FreeBSD.org> | 2017-07-07 15:35:42 +0000 |
commit | 44ed9064a08ad37fb8aca5c20740f1dba5a028aa (patch) | |
tree | dc8762c51d6a6d23f6028a2832e6c49b2e4fd7b3 /sbin/ipfw/dummynet.c | |
parent | bdbc33e513b6361aff25d65081706ff033c98441 (diff) | |
download | FreeBSD-src-44ed9064a08ad37fb8aca5c20740f1dba5a028aa.zip FreeBSD-src-44ed9064a08ad37fb8aca5c20740f1dba5a028aa.tar.gz |
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
Diffstat (limited to 'sbin/ipfw/dummynet.c')
-rw-r--r-- | sbin/ipfw/dummynet.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/sbin/ipfw/dummynet.c b/sbin/ipfw/dummynet.c index e1fcef9..f088f04 100644 --- a/sbin/ipfw/dummynet.c +++ b/sbin/ipfw/dummynet.c @@ -799,8 +799,7 @@ read_bandwidth(char *arg, int *bandwidth, char *if_name, int namelen) 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; @@ -927,8 +926,7 @@ load_extra_delays(const char *filename, struct dn_profile *p, } 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) @@ -999,7 +997,7 @@ load_extra_delays(const char *filename, struct dn_profile *p, } 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 @@ -1562,7 +1560,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); @@ -1574,7 +1573,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; @@ -1643,14 +1643,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 { |