Author: pfg
Date: Mon Jan  2 18:23:31 2017
New Revision: 311109
URL: https://svnweb.freebsd.org/changeset/base/311109

Log:
  Revert r311106:
  patch(1): extend the maximum length of a line from USHRT_MAX to UINT_MAX.
  
  This doesn't really work for 32 bit platforms.
  
  Pointed out by:       kib

Modified:
  head/usr.bin/patch/patch.c
  head/usr.bin/patch/pch.c
  head/usr.bin/patch/pch.h

Modified: head/usr.bin/patch/patch.c
==============================================================================
--- head/usr.bin/patch/patch.c  Mon Jan  2 18:20:22 2017        (r311108)
+++ head/usr.bin/patch/patch.c  Mon Jan  2 18:23:31 2017        (r311109)
@@ -749,13 +749,15 @@ rej_line(int ch, LINENUM i)
        size_t len;
        const char *line = pfetch(i);
 
-       len = strnlen(line, UINT_MAX);
+       len = strnlen(line, USHRT_MAX);
 
        fprintf(rejfp, "%c%s", ch, line);
-       if (len == 0 || line[len-1] != '\n')
-               fprintf(rejfp, "\n\\ No newline at end of line\n");
-       else if (len >= UINT_MAX)
-               fprintf(rejfp, "\n\\ Line too long\n");
+       if (len == 0 || line[len-1] != '\n') {
+               if (len >= USHRT_MAX)
+                       fprintf(rejfp, "\n\\ Line too long\n");
+               else
+                       fprintf(rejfp, "\n\\ No newline at end of line\n");
+       }
 }
 
 static void
@@ -1022,7 +1024,7 @@ patch_match(LINENUM base, LINENUM offset
        LINENUM         pat_lines = pch_ptrn_lines() - fuzz;
        const char      *ilineptr;
        const char      *plineptr;
-       u_int           plinelen;
+       unsigned short  plinelen;
 
        for (iline = base + offset + fuzz; pline <= pat_lines; pline++, 
iline++) {
                ilineptr = ifetch(iline, offset >= 0);

Modified: head/usr.bin/patch/pch.c
==============================================================================
--- head/usr.bin/patch/pch.c    Mon Jan  2 18:20:22 2017        (r311108)
+++ head/usr.bin/patch/pch.c    Mon Jan  2 18:23:31 2017        (r311109)
@@ -56,7 +56,7 @@ static LINENUM        p_max;          /* max allowed va
 static LINENUM p_context = 3;  /* # of context lines */
 static LINENUM p_input_line = 0;       /* current line # from patch file */
 static char    **p_line = NULL;/* the text of the hunk */
-static u_int   *p_len = NULL; /* length of each line */
+static unsigned short  *p_len = NULL; /* length of each line */
 static char    *p_char = NULL; /* +, -, and ! */
 static int     hunkmax = INITHUNKMAX;  /* size of above arrays to begin with */
 static int     p_indent;       /* indent to patch */
@@ -136,7 +136,7 @@ set_hunkmax(void)
        if (p_line == NULL)
                p_line = malloc(hunkmax * sizeof(char *));
        if (p_len == NULL)
-               p_len = malloc(hunkmax * sizeof(u_int));
+               p_len = malloc(hunkmax * sizeof(unsigned short));
        if (p_char == NULL)
                p_char = malloc(hunkmax * sizeof(char));
 }
@@ -153,7 +153,7 @@ grow_hunkmax(void)
                fatal("Internal memory allocation error\n");
 
        p_line = reallocf(p_line, new_hunkmax * sizeof(char *));
-       p_len = reallocf(p_len, new_hunkmax * sizeof(u_int));
+       p_len = reallocf(p_len, new_hunkmax * sizeof(unsigned short));
        p_char = reallocf(p_char, new_hunkmax * sizeof(char));
 
        if (p_line != NULL && p_len != NULL && p_char != NULL) {
@@ -1210,7 +1210,7 @@ bool
 pch_swap(void)
 {
        char    **tp_line;      /* the text of the hunk */
-       u_int   *tp_len;        /* length of each line */
+       unsigned short  *tp_len;/* length of each line */
        char    *tp_char;       /* +, -, and ! */
        LINENUM i;
        LINENUM n;
@@ -1367,7 +1367,7 @@ pch_context(void)
 /*
  * Return the length of a particular patch line.
  */
-u_int
+unsigned short
 pch_line_len(LINENUM line)
 {
        return p_len[line];

Modified: head/usr.bin/patch/pch.h
==============================================================================
--- head/usr.bin/patch/pch.h    Mon Jan  2 18:20:22 2017        (r311108)
+++ head/usr.bin/patch/pch.h    Mon Jan  2 18:23:31 2017        (r311109)
@@ -44,7 +44,7 @@ bool          there_is_another_patch(void);
 bool           another_hunk(void);
 bool           pch_swap(void);
 char           *pfetch(LINENUM);
-u_int          pch_line_len(LINENUM);
+unsigned short pch_line_len(LINENUM);
 LINENUM                pch_first(void);
 LINENUM                pch_ptrn_lines(void);
 LINENUM                pch_newfirst(void);
_______________________________________________
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