libgsf r988 - in trunk: . gsf



Author: jody
Date: Tue Jul  1 01:01:18 2008
New Revision: 988
URL: http://svn.gnome.org/viewvc/libgsf?rev=988&view=rev

Log:
	* gsf/gsf-infile-msole.c (ole_make_bat) : be more forgiving of
	  failure.  We do not need to abort completely on a cycle, just
	  truncate.


Modified:
   trunk/ChangeLog
   trunk/NEWS
   trunk/gsf/gsf-infile-msole.c

Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS	(original)
+++ trunk/NEWS	Tue Jul  1 01:01:18 2008
@@ -19,6 +19,7 @@
 	* Add missing ODF presentation namespace.
 	* Only install win32 header for win32. [#459771]
 	* Fix XML enum export utils.
+	* Be more forgiving of corrupt ole2.
 
 Morten:
 	* Fix criticals for corrupted file.  [#485964]

Modified: trunk/gsf/gsf-infile-msole.c
==============================================================================
--- trunk/gsf/gsf-infile-msole.c	(original)
+++ trunk/gsf/gsf-infile-msole.c	Tue Jul  1 01:01:18 2008
@@ -140,7 +140,7 @@
  * table for the list starting in @block.
  *
  * Returns: TRUE on error.
- */
+ **/
 static gboolean
 ole_make_bat (MSOleBAT const *metabat, size_t size_guess, guint32 block,
 	      MSOleBAT *res)
@@ -155,7 +155,8 @@
 	if (block < metabat->num_blocks)
 		do {
 			/* Catch cycles in the bat list */
-			g_return_val_if_fail (0 == (used[block/8] & (1 << (block & 0x7))), TRUE);
+			if (used[block/8] & (1 << (block & 0x7)))
+				break;
 			used[block/8] |= 1 << (block & 0x7);
 
 			g_array_append_val (bat, block);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]