Loading ...
Sorry, an error occurred while loading the content.

Patch 7.3.349

Expand Messages
  • Bram Moolenaar
    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
    Message 1 of 1 , Oct 26, 2011
    • 0 Attachment
      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@... -- 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 ///

      --
      You received this message from the "vim_dev" maillist.
      Do not top-post! Type your reply below the text you are replying to.
      For more information, visit http://www.vim.org/maillist.php
    Your message has been successfully submitted and would be delivered to recipients shortly.