summaryrefslogtreecommitdiffstats
path: root/source/ap/vim/patches/7.3.160
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2012-09-26 01:10:42 +0000
committer Eric Hameleers <alien@slackware.com>2018-05-31 22:51:55 +0200
commit9664bee729d487bcc0a0bc35859f8e13d5421c75 (patch)
treeb428a16618e36ed864a8d76ea3435e19a452bf90 /source/ap/vim/patches/7.3.160
parent75a4a592e5ccda30715f93563d741b83e0dcf39e (diff)
downloadcurrent-9664bee729d487bcc0a0bc35859f8e13d5421c75.tar.gz
current-9664bee729d487bcc0a0bc35859f8e13d5421c75.tar.xz
Slackware 14.0slackware-14.0
Wed Sep 26 01:10:42 UTC 2012 Slackware 14.0 x86_64 stable is released! We're perfectionists here at Slackware, so this release has been a long time a-brewing. But we think you'll agree that it was worth the wait. Slackware 14.0 combines modern components, ease of use, and flexible configuration... our "KISS" philosophy demands it. The ISOs are off to be replicated, a 6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD. Please consider supporting the Slackware project by picking up a copy from store.slackware.com. We're taking pre-orders now, and offer a discount if you sign up for a subscription. Thanks to everyone who helped make this happen. The Slackware team, the upstream developers, and (of course) the awesome Slackware user community. Have fun! :-)
Diffstat (limited to 'source/ap/vim/patches/7.3.160')
-rw-r--r--source/ap/vim/patches/7.3.160482
1 files changed, 482 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.3.160 b/source/ap/vim/patches/7.3.160
new file mode 100644
index 000000000..bf3a069ff
--- /dev/null
+++ b/source/ap/vim/patches/7.3.160
@@ -0,0 +1,482 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.160
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.160
+Problem: Unsafe string copying.
+Solution: Use vim_strncpy() instead of strcpy(). Use vim_strcat() instead
+ of strcat().
+Files: src/buffer.c, src/ex_docmd.c, src/hardcopy.c, src/menu.c,
+ src/misc1.c, src/misc2.c, src/proto/misc2.pro, src/netbeans.c,
+ src/os_unix.c, src/spell.c, src/syntax.c, src/tag.c
+
+*** ../vim-7.3.159/src/buffer.c 2011-02-15 14:24:42.000000000 +0100
+--- src/buffer.c 2011-04-11 16:08:38.000000000 +0200
+***************
+*** 3176,3182 ****
+ /* format: "fname + (path) (1 of 2) - VIM" */
+
+ if (curbuf->b_fname == NULL)
+! STRCPY(buf, _("[No Name]"));
+ else
+ {
+ p = transstr(gettail(curbuf->b_fname));
+--- 3176,3182 ----
+ /* format: "fname + (path) (1 of 2) - VIM" */
+
+ if (curbuf->b_fname == NULL)
+! vim_strncpy(buf, (char_u *)_("[No Name]"), IOSIZE - 100);
+ else
+ {
+ p = transstr(gettail(curbuf->b_fname));
+***************
+*** 3232,3238 ****
+ if (serverName != NULL)
+ {
+ STRCAT(buf, " - ");
+! STRCAT(buf, serverName);
+ }
+ else
+ #endif
+--- 3232,3238 ----
+ if (serverName != NULL)
+ {
+ STRCAT(buf, " - ");
+! vim_strcat(buf, serverName, IOSIZE);
+ }
+ else
+ #endif
+*** ../vim-7.3.159/src/ex_docmd.c 2011-03-03 15:54:45.000000000 +0100
+--- src/ex_docmd.c 2011-04-11 15:43:48.000000000 +0200
+***************
+*** 5096,5102 ****
+ char_u buff[IOSIZE];
+
+ if (n == 1)
+! STRCPY(buff, _("1 more file to edit. Quit anyway?"));
+ else
+ vim_snprintf((char *)buff, IOSIZE,
+ _("%d more files to edit. Quit anyway?"), n);
+--- 5096,5104 ----
+ char_u buff[IOSIZE];
+
+ if (n == 1)
+! vim_strncpy(buff,
+! (char_u *)_("1 more file to edit. Quit anyway?"),
+! IOSIZE - 1);
+ else
+ vim_snprintf((char *)buff, IOSIZE,
+ _("%d more files to edit. Quit anyway?"), n);
+*** ../vim-7.3.159/src/hardcopy.c 2010-08-15 21:57:25.000000000 +0200
+--- src/hardcopy.c 2011-04-11 15:30:09.000000000 +0200
+***************
+*** 1761,1772 ****
+ {
+ char_u buffer[MAXPATHL + 1];
+
+! STRCPY(resource->name, name);
+ /* Look for named resource file in runtimepath */
+ STRCPY(buffer, "print");
+ add_pathsep(buffer);
+! STRCAT(buffer, name);
+! STRCAT(buffer, ".ps");
+ resource->filename[0] = NUL;
+ return (do_in_runtimepath(buffer, FALSE, prt_resource_name,
+ resource->filename)
+--- 1761,1772 ----
+ {
+ char_u buffer[MAXPATHL + 1];
+
+! vim_strncpy(resource->name, (char_u *)name, 63);
+ /* Look for named resource file in runtimepath */
+ STRCPY(buffer, "print");
+ add_pathsep(buffer);
+! vim_strcat(buffer, (char_u *)name, MAXPATHL);
+! vim_strcat(buffer, (char_u *)".ps", MAXPATHL);
+ resource->filename[0] = NUL;
+ return (do_in_runtimepath(buffer, FALSE, prt_resource_name,
+ resource->filename)
+*** ../vim-7.3.159/src/menu.c 2011-01-04 17:49:25.000000000 +0100
+--- src/menu.c 2011-04-11 15:17:21.000000000 +0200
+***************
+*** 1394,1400 ****
+ int idx;
+ {
+ static vimmenu_T *menu = NULL;
+! static char_u tbuffer[256]; /*hack*/
+ char_u *str;
+ #ifdef FEAT_MULTI_LANG
+ static int should_advance = FALSE;
+--- 1394,1401 ----
+ int idx;
+ {
+ static vimmenu_T *menu = NULL;
+! #define TBUFFER_LEN 256
+! static char_u tbuffer[TBUFFER_LEN]; /*hack*/
+ char_u *str;
+ #ifdef FEAT_MULTI_LANG
+ static int should_advance = FALSE;
+***************
+*** 1428,1438 ****
+ {
+ #ifdef FEAT_MULTI_LANG
+ if (should_advance)
+! STRCPY(tbuffer, menu->en_dname);
+ else
+ {
+ #endif
+! STRCPY(tbuffer, menu->dname);
+ #ifdef FEAT_MULTI_LANG
+ if (menu->en_dname == NULL)
+ should_advance = TRUE;
+--- 1429,1439 ----
+ {
+ #ifdef FEAT_MULTI_LANG
+ if (should_advance)
+! vim_strncpy(tbuffer, menu->en_dname, TBUFFER_LEN - 2);
+ else
+ {
+ #endif
+! vim_strncpy(tbuffer, menu->dname, TBUFFER_LEN - 2);
+ #ifdef FEAT_MULTI_LANG
+ if (menu->en_dname == NULL)
+ should_advance = TRUE;
+*** ../vim-7.3.159/src/misc1.c 2011-04-11 14:27:34.000000000 +0200
+--- src/misc1.c 2011-04-11 16:03:22.000000000 +0200
+***************
+*** 3332,3350 ****
+ if (pn == 1)
+ {
+ if (n > 0)
+! STRCPY(msg_buf, _("1 more line"));
+ else
+! STRCPY(msg_buf, _("1 line less"));
+ }
+ else
+ {
+ if (n > 0)
+! sprintf((char *)msg_buf, _("%ld more lines"), pn);
+ else
+! sprintf((char *)msg_buf, _("%ld fewer lines"), pn);
+ }
+ if (got_int)
+! STRCAT(msg_buf, _(" (Interrupted)"));
+ if (msg(msg_buf))
+ {
+ set_keep_msg(msg_buf, 0);
+--- 3332,3354 ----
+ if (pn == 1)
+ {
+ if (n > 0)
+! vim_strncpy(msg_buf, (char_u *)_("1 more line"),
+! MSG_BUF_LEN - 1);
+ else
+! vim_strncpy(msg_buf, (char_u *)_("1 line less"),
+! MSG_BUF_LEN - 1);
+ }
+ else
+ {
+ if (n > 0)
+! vim_snprintf((char *)msg_buf, MSG_BUF_LEN,
+! _("%ld more lines"), pn);
+ else
+! vim_snprintf((char *)msg_buf, MSG_BUF_LEN,
+! _("%ld fewer lines"), pn);
+ }
+ if (got_int)
+! vim_strcat(msg_buf, (char_u *)_(" (Interrupted)"), MSG_BUF_LEN);
+ if (msg(msg_buf))
+ {
+ set_keep_msg(msg_buf, 0);
+*** ../vim-7.3.159/src/misc2.c 2010-12-08 13:11:15.000000000 +0100
+--- src/misc2.c 2011-04-11 15:30:20.000000000 +0200
+***************
+*** 1647,1652 ****
+--- 1647,1674 ----
+ }
+
+ /*
++ * Like strcat(), but make sure the result fits in "tosize" bytes and is
++ * always NUL terminated.
++ */
++ void
++ vim_strcat(to, from, tosize)
++ char_u *to;
++ char_u *from;
++ size_t tosize;
++ {
++ size_t tolen = STRLEN(to);
++ size_t fromlen = STRLEN(from);
++
++ if (tolen + fromlen + 1 > tosize)
++ {
++ mch_memmove(to + tolen, from, tosize - tolen - 1);
++ to[tosize - 1] = NUL;
++ }
++ else
++ STRCPY(to + tolen, from);
++ }
++
++ /*
+ * Isolate one part of a string option where parts are separated with
+ * "sep_chars".
+ * The part is copied into "buf[maxlen]".
+*** ../vim-7.3.159/src/proto/misc2.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/misc2.pro 2011-04-11 15:29:55.000000000 +0200
+***************
+*** 40,45 ****
+--- 40,46 ----
+ void copy_chars __ARGS((char_u *ptr, size_t count, int c));
+ void del_trailing_spaces __ARGS((char_u *ptr));
+ void vim_strncpy __ARGS((char_u *to, char_u *from, size_t len));
++ void vim_strcat __ARGS((char_u *to, char_u *from, size_t tosize));
+ int copy_option_part __ARGS((char_u **option, char_u *buf, int maxlen, char *sep_chars));
+ void vim_free __ARGS((void *x));
+ int vim_stricmp __ARGS((char *s1, char *s2));
+*** ../vim-7.3.159/src/netbeans.c 2011-04-01 15:33:54.000000000 +0200
+--- src/netbeans.c 2011-04-11 16:02:51.000000000 +0200
+***************
+*** 3914,3927 ****
+ }
+ else
+ {
+! char_u ebuf[BUFSIZ];
+
+! STRCPY(ebuf, (char_u *)_("E505: "));
+! STRCAT(ebuf, IObuff);
+! STRCAT(ebuf, (char_u *)_("is read-only (add ! to override)"));
+! STRCPY(IObuff, ebuf);
+! nbdebug((" %s\n", ebuf ));
+! emsg(IObuff);
+ }
+ }
+
+--- 3914,3925 ----
+ }
+ else
+ {
+! char_u msgbuf[IOSIZE];
+
+! vim_snprintf((char *)msgbuf, IOSIZE,
+! _("E505: %s is read-only (add ! to override)"), IObuff);
+! nbdebug((" %s\n", msgbuf));
+! emsg(msgbuf);
+ }
+ }
+
+*** ../vim-7.3.159/src/os_unix.c 2011-02-15 17:39:14.000000000 +0100
+--- src/os_unix.c 2011-04-11 16:39:11.000000000 +0200
+***************
+*** 5725,5730 ****
+--- 5725,5731 ----
+ if (shell_style == STYLE_PRINT && !did_find_nul)
+ {
+ /* If there is a NUL, set did_find_nul, else set check_spaces */
++ buffer[len] = NUL;
+ if (len && (int)STRLEN(buffer) < (int)len - 1)
+ did_find_nul = TRUE;
+ else
+***************
+*** 6594,6600 ****
+ xterm_hints.x = 2;
+ return TRUE;
+ }
+! if (mouse_code == NULL)
+ {
+ xterm_trace = 0;
+ return FALSE;
+--- 6595,6601 ----
+ xterm_hints.x = 2;
+ return TRUE;
+ }
+! if (mouse_code == NULL || STRLEN(mouse_code) > 45)
+ {
+ xterm_trace = 0;
+ return FALSE;
+*** ../vim-7.3.159/src/spell.c 2011-02-01 13:59:44.000000000 +0100
+--- src/spell.c 2011-04-11 15:50:40.000000000 +0200
+***************
+*** 6957,6963 ****
+ if (ae->ae_add == NULL)
+ *newword = NUL;
+ else
+! STRCPY(newword, ae->ae_add);
+ p = word;
+ if (ae->ae_chop != NULL)
+ {
+--- 6957,6963 ----
+ if (ae->ae_add == NULL)
+ *newword = NUL;
+ else
+! vim_strncpy(newword, ae->ae_add, MAXWLEN - 1);
+ p = word;
+ if (ae->ae_chop != NULL)
+ {
+***************
+*** 6978,6984 ****
+ else
+ {
+ /* suffix: chop/add at the end of the word */
+! STRCPY(newword, word);
+ if (ae->ae_chop != NULL)
+ {
+ /* Remove chop string. */
+--- 6978,6984 ----
+ else
+ {
+ /* suffix: chop/add at the end of the word */
+! vim_strncpy(newword, word, MAXWLEN - 1);
+ if (ae->ae_chop != NULL)
+ {
+ /* Remove chop string. */
+***************
+*** 8654,8660 ****
+ * Write the .sug file.
+ * Make the file name by changing ".spl" to ".sug".
+ */
+! STRCPY(fname, wfname);
+ len = (int)STRLEN(fname);
+ fname[len - 2] = 'u';
+ fname[len - 1] = 'g';
+--- 8654,8660 ----
+ * Write the .sug file.
+ * Make the file name by changing ".spl" to ".sug".
+ */
+! vim_strncpy(fname, wfname, MAXPATHL - 1);
+ len = (int)STRLEN(fname);
+ fname[len - 2] = 'u';
+ fname[len - 1] = 'g';
+***************
+*** 10261,10267 ****
+
+ /* The suggested word may replace only part of the bad word, add
+ * the not replaced part. */
+! STRCPY(wcopy, stp->st_word);
+ if (sug.su_badlen > stp->st_orglen)
+ vim_strncpy(wcopy + stp->st_wordlen,
+ sug.su_badptr + stp->st_orglen,
+--- 10261,10267 ----
+
+ /* The suggested word may replace only part of the bad word, add
+ * the not replaced part. */
+! vim_strncpy(wcopy, stp->st_word, MAXWLEN);
+ if (sug.su_badlen > stp->st_orglen)
+ vim_strncpy(wcopy + stp->st_wordlen,
+ sug.su_badptr + stp->st_orglen,
+***************
+*** 13162,13168 ****
+ pbad = badsound2;
+ }
+
+! if (lendiff > 0)
+ {
+ /* Add part of the bad word to the good word, so that we soundfold
+ * what replaces the bad word. */
+--- 13162,13168 ----
+ pbad = badsound2;
+ }
+
+! if (lendiff > 0 && stp->st_wordlen + lendiff < MAXWLEN)
+ {
+ /* Add part of the bad word to the good word, so that we soundfold
+ * what replaces the bad word. */
+***************
+*** 13875,13881 ****
+ for (i = gap->ga_len - 1; i >= 0; --i)
+ {
+ /* Need to append what follows to check for "the the". */
+! STRCPY(longword, stp[i].st_word);
+ len = stp[i].st_wordlen;
+ vim_strncpy(longword + len, su->su_badptr + stp[i].st_orglen,
+ MAXWLEN - len);
+--- 13875,13881 ----
+ for (i = gap->ga_len - 1; i >= 0; --i)
+ {
+ /* Need to append what follows to check for "the the". */
+! vim_strncpy(longword, stp[i].st_word, MAXWLEN);
+ len = stp[i].st_wordlen;
+ vim_strncpy(longword + len, su->su_badptr + stp[i].st_orglen,
+ MAXWLEN - len);
+***************
+*** 14221,14227 ****
+ *t = NUL;
+ }
+ else
+! STRCPY(word, s);
+
+ smp = (salitem_T *)slang->sl_sal.ga_data;
+
+--- 14221,14227 ----
+ *t = NUL;
+ }
+ else
+! vim_strncpy(word, s, MAXWLEN - 1);
+
+ smp = (salitem_T *)slang->sl_sal.ga_data;
+
+*** ../vim-7.3.159/src/syntax.c 2011-04-02 15:12:45.000000000 +0200
+--- src/syntax.c 2011-04-11 15:44:30.000000000 +0200
+***************
+*** 8576,8583 ****
+ if (iarg & hl_attr_table[i])
+ {
+ if (buf[0] != NUL)
+! STRCAT(buf, ",");
+! STRCAT(buf, hl_name_table[i]);
+ iarg &= ~hl_attr_table[i]; /* don't want "inverse" */
+ }
+ }
+--- 8576,8583 ----
+ if (iarg & hl_attr_table[i])
+ {
+ if (buf[0] != NUL)
+! vim_strcat(buf, (char_u *)",", 100);
+! vim_strcat(buf, (char_u *)hl_name_table[i], 100);
+ iarg &= ~hl_attr_table[i]; /* don't want "inverse" */
+ }
+ }
+*** ../vim-7.3.159/src/tag.c 2011-02-25 15:13:43.000000000 +0100
+--- src/tag.c 2011-04-11 15:34:59.000000000 +0200
+***************
+*** 806,812 ****
+ p = tag_full_fname(&tagp);
+ if (p == NULL)
+ continue;
+! STRCPY(fname, p);
+ vim_free(p);
+
+ /*
+--- 806,812 ----
+ p = tag_full_fname(&tagp);
+ if (p == NULL)
+ continue;
+! vim_strncpy(fname, p, MAXPATHL);
+ vim_free(p);
+
+ /*
+*** ../vim-7.3.159/src/version.c 2011-04-11 14:29:13.000000000 +0200
+--- src/version.c 2011-04-11 16:50:53.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 160,
+ /**/
+
+--
+If someone questions your market projections, simply point out that your
+target market is "People who are nuts" and "People who will buy any damn
+thing". Nobody is going to tell you there aren't enough of those people
+to go around.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///