]>
Commit | Line | Data |
---|---|---|
6577e359 | 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 /// |