Author: bapt
Date: Tue May  5 09:33:32 2015
New Revision: 282466
URL: https://svnweb.freebsd.org/changeset/base/282466

Log:
  Properly assign open and close brackets and checks memory
  
  Obtained from:        NetBSD

Modified:
  head/usr.bin/checknr/checknr.c

Modified: head/usr.bin/checknr/checknr.c
==============================================================================
--- head/usr.bin/checknr/checknr.c      Tue May  5 09:33:02 2015        
(r282465)
+++ head/usr.bin/checknr/checknr.c      Tue May  5 09:33:32 2015        
(r282466)
@@ -215,8 +215,18 @@ main(int argc, char **argv)
                        for (i=0; br[i].opbr; i++)
                                ;
                        for (cp=argv[1]+3; cp[-1]; cp += 6) {
-                               br[i].opbr = strncpy(malloc(3), cp, 2);
-                               br[i].clbr = strncpy(malloc(3), cp+3, 2);
+                               char *tmp;
+
+                               if (i >= MAXBR)
+                                       errx(1, "too many pairs");
+                               if ((tmp = malloc(3)) == NULL)
+                                       err(1, "malloc");
+                               strlcpy(tmp, cp, 3);
+                               br[i].opbr = tmp;
+                               if ((tmp = malloc(3)) == NULL)
+                                       err(1, "malloc");
+                               strlcpy(tmp, cp+3, 3);
+                               br[i].clbr = tmp;
                                addmac(br[i].opbr);     /* knows pairs are also 
known cmds */
                                addmac(br[i].clbr);
                                i++;
_______________________________________________
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