Blob Blame History Raw
To: vim_dev@googlegroups.com
Subject: Patch 7.3.428
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.428 
Problem:    Win32: an xpm file without a mask crashes Vim.
Solution:   Fail when the mask is missing. (Dave Bodenstab)
Files:      src/xpm_w32.c
 

*** ../vim-7.3.427/src/xpm_w32.c	2010-08-15 21:57:25.000000000 +0200
--- src/xpm_w32.c	2012-02-05 00:46:13.000000000 +0100
***************
*** 1,4 ****
! /*
   * Load XPM image.
   *
   * This function is placed in separate file because Xpm headers conflict with
--- 1,5 ----
! /* vi:set ts=8 sts=4 sw=4:
!  *
   * Load XPM image.
   *
   * This function is placed in separate file because Xpm headers conflict with
***************
*** 30,38 ****
  #include "xpm.h"
  
  /*
!  * Tries to load Xpm image from file 'filename'.
!  * If fails return -1.
!  * success - 0 and image and mask BITMAPS
   */
      int
  LoadXpmImage(filename, hImage, hShape)
--- 31,40 ----
  #include "xpm.h"
  
  /*
!  * Tries to load an Xpm image from the file "filename".
!  * Returns -1 on failure.
!  * Returns 0 on success and stores image and mask BITMAPS in "hImage" and
!  * "hShape".
   */
      int
  LoadXpmImage(filename, hImage, hShape)
***************
*** 40,46 ****
      HBITMAP *hImage;
      HBITMAP *hShape;
  {
!     XImage	    *img;   /* loaded image */
      XImage	    *shp;  /* shapeimage */
      XpmAttributes   attr;
      int		    res;
--- 42,48 ----
      HBITMAP *hImage;
      HBITMAP *hShape;
  {
!     XImage	    *img;  /* loaded image */
      XImage	    *shp;  /* shapeimage */
      XpmAttributes   attr;
      int		    res;
***************
*** 51,60 ****
      DeleteDC(hdc);
      if (res < 0)
  	return -1;
!     else
      {
! 	*hImage = img->bitmap;
! 	*hShape = shp->bitmap;
! 	return 0;
      }
  }
--- 53,65 ----
      DeleteDC(hdc);
      if (res < 0)
  	return -1;
!     if (shp == NULL)
      {
!         if (img)
! 	    XDestroyImage(img);
! 	return -1;
      }
+     *hImage = img->bitmap;
+     *hShape = shp->bitmap;
+     return 0;
  }
*** ../vim-7.3.427/src/version.c	2012-02-05 00:39:14.000000000 +0100
--- src/version.c	2012-02-05 00:47:08.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
  {   /* Add new patch number below this line */
+ /**/
+     428,
  /**/

-- 
I'm not familiar with this proof, but I'm aware of a significant
following of toddlers who believe that peanut butter is the solution
to all of life's problems... 		-- Tim Hammerquist

 /// 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    ///