To: vim_dev@googlegroups.com Subject: Patch 7.3.349 Fcc: outbox From: Bram Moolenaar 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 ///