diff options
Diffstat (limited to 'source/ap/vim/patches/7.3.349')
-rw-r--r-- | source/ap/vim/patches/7.3.349 | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.3.349 b/source/ap/vim/patches/7.3.349 new file mode 100644 index 00000000..ac519afe --- /dev/null +++ b/source/ap/vim/patches/7.3.349 @@ -0,0 +1,88 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.349 +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.349 +Problem: When running out of memory during startup trying to open a + swapfile will loop forever. +Solution: Let findswapname() set dirp to NULL if out of memory. +Files: src/memline.c + + +*** ../vim-7.3.348/src/memline.c 2011-06-13 01:07:22.000000000 +0200 +--- src/memline.c 2011-10-26 11:26:06.000000000 +0200 +*************** +*** 621,626 **** +--- 621,628 ---- + break; + fname = findswapname(buf, &dirp, mfp->mf_fname); + /* alloc's fname */ ++ if (dirp == NULL) /* out of memory */ ++ break; + if (fname == NULL) /* no file name found for this dir */ + continue; + +*************** +*** 744,749 **** +--- 746,753 ---- + * and creating it, another Vim creates the file. In that case the + * creation will fail and we will use another directory. */ + fname = findswapname(buf, &dirp, NULL); /* allocates fname */ ++ if (dirp == NULL) ++ break; /* out of memory */ + if (fname == NULL) + continue; + if (mf_open_file(mfp, fname) == OK) /* consumes fname! */ +*************** +*** 4114,4119 **** +--- 4118,4124 ---- + * + * Several names are tried to find one that does not exist + * Returns the name in allocated memory or NULL. ++ * When out of memory "dirp" is set to NULL. + * + * Note: If BASENAMELEN is not correct, you will get error messages for + * not being able to open the swap or undo file +*************** +*** 4157,4163 **** + * First allocate some memory to put the directory name in. + */ + dir_name = alloc((unsigned)STRLEN(*dirp) + 1); +! if (dir_name != NULL) + (void)copy_option_part(dirp, dir_name, 31000, ","); + + /* +--- 4162,4170 ---- + * First allocate some memory to put the directory name in. + */ + dir_name = alloc((unsigned)STRLEN(*dirp) + 1); +! if (dir_name == NULL) +! *dirp = NULL; +! else + (void)copy_option_part(dirp, dir_name, 31000, ","); + + /* +*** ../vim-7.3.348/src/version.c 2011-10-26 11:40:56.000000000 +0200 +--- src/version.c 2011-10-26 11:43:05.000000000 +0200 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 349, + /**/ + +-- +I AM THANKFUL... +...for all the complaining I hear about the government +because it means we have freedom of speech. + + /// 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 /// |