Browse Source

bpo-12202: Properly check MsiSummaryInfoGetProperty() calls in msilib (GH-13711)

pull/13716/head
Zackery Spytz 7 years ago
committed by Berker Peksag
parent
commit
549e55a308
  1. 9
      Lib/test/test_msilib.py
  2. 2
      Misc/NEWS.d/next/Library/2019-05-31-15-53-34.bpo-12202.nobzc9.rst
  3. 3
      PC/_msi.c

9
Lib/test/test_msilib.py

@ -85,6 +85,7 @@ class MsiDatabaseTestCase(unittest.TestCase):
def test_directory_start_component_keyfile(self):
db, db_path = init_database()
self.addCleanup(unlink, db_path)
self.addCleanup(db.Close)
feature = msilib.Feature(db, 0, 'Feature', 'A feature', 'Python')
cab = msilib.CAB('CAB')
@ -92,6 +93,14 @@ class MsiDatabaseTestCase(unittest.TestCase):
'SourceDir', 0)
dir.start_component(None, feature, None, 'keyfile')
def test_getproperty_uninitialized_var(self):
db, db_path = init_database()
self.addCleanup(unlink, db_path)
self.addCleanup(db.Close)
si = db.GetSummaryInformation(0)
with self.assertRaises(msilib.MSIError):
si.GetProperty(-1)
class Test_make_id(unittest.TestCase):
#http://msdn.microsoft.com/en-us/library/aa369212(v=vs.85).aspx

2
Misc/NEWS.d/next/Library/2019-05-31-15-53-34.bpo-12202.nobzc9.rst

@ -0,0 +1,2 @@
Fix the error handling in :meth:`msilib.SummaryInformation.GetProperty`. Patch
by Zackery Spytz.

3
PC/_msi.c

@ -571,6 +571,9 @@ summary_getproperty(msiobj* si, PyObject *args)
status = MsiSummaryInfoGetProperty(si->h, field, &type, &ival,
&fval, sval, &ssize);
}
if (status != ERROR_SUCCESS) {
return msierror(status);
}
switch(type) {
case VT_I2:

Loading…
Cancel
Save