msi: Fix infinite loop.
Vincent Povirk
madewokherd at gmail.com
Mon Mar 31 16:48:11 CDT 2014
This loop never exits if progid->Parent == progid and there is no
class. There are other checks for that in the file, so I assume that
condition is supposed to be possible.
The Office 2003 installer suffers from this.
-------------- next part --------------
From 5c2a86dd02bc48faa5b7f382d234c7fcaf2bfefa Mon Sep 17 00:00:00 2001
From: Vincent Povirk <vincent at codeweavers.com>
Date: Mon, 31 Mar 2014 16:40:01 -0500
Subject: [PATCH] msi: Fix infinite loop.
---
dlls/msi/classes.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/msi/classes.c b/dlls/msi/classes.c
index a5139f8..2719a8e 100644
--- a/dlls/msi/classes.c
+++ b/dlls/msi/classes.c
@@ -1054,7 +1054,7 @@ static const MSICLASS *get_progid_class( const MSIPROGID *progid )
{
if (progid->Parent) progid = progid->Parent;
if (progid->Class) return progid->Class;
- if (!progid->Parent) break;
+ if (!progid->Parent || progid->Parent == progid) break;
}
return NULL;
}
--
1.8.3.2
More information about the wine-patches
mailing list