home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / patches / 7.1 / 7.1.055 < prev    next >
Encoding:
Internet Message Format  |  2007-11-19  |  5.3 KB

  1. To: vim-dev@vim.org
  2. Subject: patch 7.1.055
  3. Fcc: outbox
  4. From: Bram Moolenaar <Bram@moolenaar.net>
  5. Mime-Version: 1.0
  6. Content-Type: text/plain; charset=ISO-8859-1
  7. Content-Transfer-Encoding: 8bit
  8. ------------
  9.  
  10. Patch 7.1.055
  11. Problem:    Using strcpy() with arguments that overlap.
  12. Solution:   Use mch_memmove() instead.
  13. Files:        src/buffer.c, src/charset.c, src/eval.c, src/ex_getln.c,
  14.         src/misc1.c, src/regexp.c, src/termlib.c
  15.  
  16.  
  17. *** ../vim-7.1.054/src/buffer.c    Tue Jun 19 15:40:51 2007
  18. --- src/buffer.c    Sun Aug  5 16:14:03 2007
  19. ***************
  20. *** 4860,4866 ****
  21.            */
  22.           for (e = s; *e != ':' && *e != NUL; ++e)
  23.           if (e[0] == '\\' && e[1] == ':')
  24. !             STRCPY(e, e + 1);
  25.           if (*e == NUL)
  26.           end = TRUE;
  27.   
  28. --- 4860,4866 ----
  29.            */
  30.           for (e = s; *e != ':' && *e != NUL; ++e)
  31.           if (e[0] == '\\' && e[1] == ':')
  32. !             mch_memmove(e, e + 1, STRLEN(e));
  33.           if (*e == NUL)
  34.           end = TRUE;
  35.   
  36. *** ../vim-7.1.054/src/charset.c    Tue Mar 27 12:41:45 2007
  37. --- src/charset.c    Sun Aug  5 21:53:44 2007
  38. ***************
  39. *** 1898,1904 ****
  40.   {
  41.       for ( ; *p; ++p)
  42.       if (rem_backslash(p))
  43. !         STRCPY(p, p + 1);
  44.   }
  45.   
  46.   /*
  47. --- 1898,1904 ----
  48.   {
  49.       for ( ; *p; ++p)
  50.       if (rem_backslash(p))
  51. !         mch_memmove(p, p + 1, STRLEN(p));
  52.   }
  53.   
  54.   /*
  55. *** ../vim-7.1.054/src/eval.c    Fri Jul 27 21:32:13 2007
  56. --- src/eval.c    Sun Aug  5 16:25:03 2007
  57. ***************
  58. *** 13807,13813 ****
  59.           }
  60.           /* Shorten "remain". */
  61.           if (*q != NUL)
  62. !         STRCPY(remain, q - 1);
  63.           else
  64.           {
  65.           vim_free(remain);
  66. --- 13807,13813 ----
  67.           }
  68.           /* Shorten "remain". */
  69.           if (*q != NUL)
  70. !         mch_memmove(remain, q - 1, STRLEN(q - 1) + 1);
  71.           else
  72.           {
  73.           vim_free(remain);
  74. *** ../vim-7.1.054/src/ex_getln.c    Sat Jul 28 14:21:04 2007
  75. --- src/ex_getln.c    Sun Aug  5 21:55:56 2007
  76. ***************
  77. *** 4306,4315 ****
  78.                   && pat[i + 1] == '\\'
  79.                   && pat[i + 2] == '\\'
  80.                   && pat[i + 3] == ' ')
  81. !             STRCPY(pat + i, pat + i + 3);
  82.               if (xp->xp_backslash == XP_BS_ONE
  83.                   && pat[i + 1] == ' ')
  84. !             STRCPY(pat + i, pat + i + 1);
  85.           }
  86.       }
  87.   
  88. --- 4306,4316 ----
  89.                   && pat[i + 1] == '\\'
  90.                   && pat[i + 2] == '\\'
  91.                   && pat[i + 3] == ' ')
  92. !             mch_memmove(pat + i, pat + i + 3,
  93. !                              STRLEN(pat + i + 3) + 1);
  94.               if (xp->xp_backslash == XP_BS_ONE
  95.                   && pat[i + 1] == ' ')
  96. !             mch_memmove(pat + i, pat + i + 1, STRLEN(pat + i));
  97.           }
  98.       }
  99.   
  100. ***************
  101. *** 4552,4558 ****
  102.       pat = vim_strsave(filepat);
  103.       for (i = 0; pat[i]; ++i)
  104.       if (pat[i] == '\\' && pat[i + 1] == ' ')
  105. !         STRCPY(pat + i, pat + i + 1);
  106.   
  107.       flags |= EW_FILE | EW_EXEC;
  108.   
  109. --- 4553,4559 ----
  110.       pat = vim_strsave(filepat);
  111.       for (i = 0; pat[i]; ++i)
  112.       if (pat[i] == '\\' && pat[i + 1] == ' ')
  113. !         mch_memmove(pat + i, pat + i + 1, STRLEN(pat + i));
  114.   
  115.       flags |= EW_FILE | EW_EXEC;
  116.   
  117. *** ../vim-7.1.054/src/misc1.c    Sat Aug  4 12:14:04 2007
  118. --- src/misc1.c    Sun Aug  5 21:57:15 2007
  119. ***************
  120. *** 8635,8641 ****
  121.       for (p = buf + wildoff; p < s; ++p)
  122.       if (rem_backslash(p))
  123.       {
  124. !         STRCPY(p, p + 1);
  125.           --e;
  126.           --s;
  127.       }
  128. --- 8635,8641 ----
  129.       for (p = buf + wildoff; p < s; ++p)
  130.       if (rem_backslash(p))
  131.       {
  132. !         mch_memmove(p, p + 1, STRLEN(p));
  133.           --e;
  134.           --s;
  135.       }
  136. ***************
  137. *** 8936,8942 ****
  138.       for (p = buf + wildoff; p < s; ++p)
  139.       if (rem_backslash(p))
  140.       {
  141. !         STRCPY(p, p + 1);
  142.           --e;
  143.           --s;
  144.       }
  145. --- 8936,8942 ----
  146.       for (p = buf + wildoff; p < s; ++p)
  147.       if (rem_backslash(p))
  148.       {
  149. !         mch_memmove(p, p + 1, STRLEN(p));
  150.           --e;
  151.           --s;
  152.       }
  153. *** ../vim-7.1.054/src/regexp.c    Mon Jul 30 22:32:11 2007
  154. --- src/regexp.c    Sun Aug  5 15:43:27 2007
  155. ***************
  156. *** 6637,6645 ****
  157.           }
  158.           }
  159.           else if (magic)
  160. !         STRCPY(p, p + 1);        /* remove '~' */
  161.           else
  162. !         STRCPY(p, p + 2);        /* remove '\~' */
  163.           --p;
  164.       }
  165.       else
  166. --- 6638,6646 ----
  167.           }
  168.           }
  169.           else if (magic)
  170. !         mch_memmove(p, p + 1, STRLEN(p));    /* remove '~' */
  171.           else
  172. !         mch_memmove(p, p + 2, STRLEN(p) - 1);    /* remove '\~' */
  173.           --p;
  174.       }
  175.       else
  176. *** ../vim-7.1.054/src/termlib.c    Thu May 10 20:20:59 2007
  177. --- src/termlib.c    Sun Aug  5 21:52:41 2007
  178. ***************
  179. *** 191,197 ****
  180.           lbuf[0] == '\t' &&
  181.           lbuf[1] == ':')
  182.       {
  183. !         strcpy(lbuf, lbuf+2);
  184.           llen -= 2;
  185.       }
  186.       if (lbuf[llen-2] == '\\')        /* and continuations */
  187. --- 191,197 ----
  188.           lbuf[0] == '\t' &&
  189.           lbuf[1] == ':')
  190.       {
  191. !         mch_memmove(lbuf, lbuf + 2, strlen(lbuf + 2) + 1);
  192.           llen -= 2;
  193.       }
  194.       if (lbuf[llen-2] == '\\')        /* and continuations */
  195. *** ../vim-7.1.054/src/version.c    Sun Aug  5 20:10:16 2007
  196. --- src/version.c    Mon Aug  6 21:34:54 2007
  197. ***************
  198. *** 668,669 ****
  199. --- 668,671 ----
  200.   {   /* Add new patch number below this line */
  201. + /**/
  202. +     55,
  203.   /**/
  204.  
  205. -- 
  206. From "know your smileys":
  207.  %    Bike accident.  A bit far-fetched, I suppose; although...
  208.              o      _     _         _
  209.      _o     /\_   _ \\o  (_)\__/o  (_)
  210.    _< \_   _>(_) (_)/<_    \_| \   _|/' \/
  211.   (_)>(_) (_)        (_)   (_)    (_)'  _\o_
  212.  
  213.  /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
  214. ///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
  215. \\\        download, build and distribute -- http://www.A-A-P.org        ///
  216.  \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
  217.