Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 0a29e89

Browse files
committed
Issue #21931: Fix error handling in msilib.FCICreate().
Patch by Jeffrey Armstrong.
1 parent 610a51f commit 0a29e89

2 files changed

Lines changed: 16 additions & 3 deletions

File tree

Misc/NEWS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ Core and Builtins
4848
Library
4949
-------
5050

51+
- Issue #21931: msilib.FCICreate() now raises TypeError in the case of a bad
52+
argument instead of a ValueError with a bogus FCI error number.
53+
Patch by Jeffrey Armstrong.
54+
5155
- Issue #23796: peak and read1 methods of BufferedReader now raise ValueError
5256
if they called on a closed object. Patch by John Hergenroeder.
5357

PC/_msi.c

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -243,8 +243,13 @@ static PyObject* fcicreate(PyObject* obj, PyObject* args)
243243
for (i=0; i < PyList_GET_SIZE(files); i++) {
244244
PyObject *item = PyList_GET_ITEM(files, i);
245245
char *filename, *cabname;
246-
if (!PyArg_ParseTuple(item, "ss", &filename, &cabname))
247-
goto err;
246+
247+
if (!PyArg_ParseTuple(item, "ss", &filename, &cabname)) {
248+
PyErr_SetString(PyExc_TypeError, "FCICreate expects a list of tuples containing two strings");
249+
FCIDestroy(hfci);
250+
return NULL;
251+
}
252+
248253
if (!FCIAddFile(hfci, filename, cabname, FALSE,
249254
cb_getnextcabinet, cb_status, cb_getopeninfo,
250255
tcompTYPE_MSZIP))
@@ -260,7 +265,11 @@ static PyObject* fcicreate(PyObject* obj, PyObject* args)
260265
Py_INCREF(Py_None);
261266
return Py_None;
262267
err:
263-
PyErr_Format(PyExc_ValueError, "FCI error %d", erf.erfOper); /* XXX better error type */
268+
if(erf.fError)
269+
PyErr_Format(PyExc_ValueError, "FCI error %d", erf.erfOper); /* XXX better error type */
270+
else
271+
PyErr_SetString(PyExc_ValueError, "FCI general error");
272+
264273
FCIDestroy(hfci);
265274
return NULL;
266275
}

0 commit comments

Comments
 (0)