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

Reply via email to