Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 Sep 2015 06:52:58 +0000 (UTC)
From:      Xin LI <delphij@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r287650 - head/usr.sbin/gstat
Message-ID:  <201509110652.t8B6qwO1067960@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: delphij
Date: Fri Sep 11 06:52:57 2015
New Revision: 287650
URL: https://svnweb.freebsd.org/changeset/base/287650

Log:
  Use strlcpy() in favor of strncpy() as it's defined to have a nul character
  at the end of string buffer, and the code context do expects this to behave
  correctly (e.g. strchr).
  
  Note that we do not believe there is real-world impact for gstat(8)'s usage
  because the strings are length checked, and the on-stack buffer belongs to
  main() and we can expect to have zeros in them.
  
  MFC after:	2 weeks

Modified:
  head/usr.sbin/gstat/gstat.c

Modified: head/usr.sbin/gstat/gstat.c
==============================================================================
--- head/usr.sbin/gstat/gstat.c	Fri Sep 11 04:37:01 2015	(r287649)
+++ head/usr.sbin/gstat/gstat.c	Fri Sep 11 06:52:57 2015	(r287650)
@@ -124,7 +124,7 @@ main(int argc, char **argv)
 			if (regcomp(&f_re, optarg, REG_EXTENDED) != 0)
 				errx(EX_USAGE,
 				    "Invalid filter - see re_format(7)");
-			strncpy(f_s, optarg, sizeof(f_s));
+			strlcpy(f_s, optarg, sizeof(f_s));
 			break;
 		case 'o':
 			flag_o = 1;
@@ -216,7 +216,7 @@ main(int argc, char **argv)
 				getyx(stdscr, cury, curx);
 				getmaxyx(stdscr, maxy, maxx);
 			}
-			strncpy(pf_s, f_s, sizeof(pf_s));
+			strlcpy(pf_s, f_s, sizeof(pf_s));
 			max_flen = maxx - curx - 1;
 			if ((int)strlen(f_s) > max_flen && max_flen >= 0) {
 				if (max_flen > 3)
@@ -406,7 +406,7 @@ main(int argc, char **argv)
 					err(1, "el_gets");
 				if (line_len > 1)
 					history(hist, &hist_ev, H_ENTER, line);
-				strncpy(tmp_f_s, line, sizeof(f_s));
+				strlcpy(tmp_f_s, line, sizeof(f_s));
 				if ((p = strchr(tmp_f_s, '\n')) != NULL)
 					*p = '\0';
 				/*
@@ -423,7 +423,7 @@ main(int argc, char **argv)
 					refresh();
 					sleep(1);
 				} else {
-					strncpy(f_s, tmp_f_s, sizeof(f_s));
+					strlcpy(f_s, tmp_f_s, sizeof(f_s));
 					f_re = tmp_f_re;
 				}
 				break;



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