Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit d78c3bc

Browse filesBrowse files
[3.11] gh-104645: fix error handling in marshal tests (GH-104646) (#104663)
gh-104645: fix error handling in marshal tests (GH-104646) (cherry picked from commit ac56a85) Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
1 parent 702ce87 commit d78c3bc
Copy full SHA for d78c3bc

File tree

1 file changed

+14
-18
lines changed
Filter options

1 file changed

+14
-18
lines changed

‎Modules/_testcapimodule.c

Copy file name to clipboardExpand all lines: Modules/_testcapimodule.c
+14-18Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4639,10 +4639,9 @@ pymarshal_write_long_to_file(PyObject* self, PyObject *args)
46394639
}
46404640

46414641
PyMarshal_WriteLongToFile(value, fp, version);
4642+
assert(!PyErr_Occurred());
46424643

46434644
fclose(fp);
4644-
if (PyErr_Occurred())
4645-
return NULL;
46464645
Py_RETURN_NONE;
46474646
}
46484647

@@ -4665,10 +4664,9 @@ pymarshal_write_object_to_file(PyObject* self, PyObject *args)
46654664
}
46664665

46674666
PyMarshal_WriteObjectToFile(obj, fp, version);
4667+
assert(!PyErr_Occurred());
46684668

46694669
fclose(fp);
4670-
if (PyErr_Occurred())
4671-
return NULL;
46724670
Py_RETURN_NONE;
46734671
}
46744672

@@ -4726,48 +4724,46 @@ pymarshal_read_long_from_file(PyObject* self, PyObject *args)
47264724
static PyObject*
47274725
pymarshal_read_last_object_from_file(PyObject* self, PyObject *args)
47284726
{
4729-
PyObject *obj;
4730-
long pos;
47314727
PyObject *filename;
4732-
FILE *fp;
4733-
47344728
if (!PyArg_ParseTuple(args, "O:pymarshal_read_last_object_from_file", &filename))
47354729
return NULL;
47364730

4737-
fp = _Py_fopen_obj(filename, "rb");
4731+
FILE *fp = _Py_fopen_obj(filename, "rb");
47384732
if (fp == NULL) {
47394733
PyErr_SetFromErrno(PyExc_OSError);
47404734
return NULL;
47414735
}
47424736

4743-
obj = PyMarshal_ReadLastObjectFromFile(fp);
4744-
pos = ftell(fp);
4737+
PyObject *obj = PyMarshal_ReadLastObjectFromFile(fp);
4738+
long pos = ftell(fp);
47454739

47464740
fclose(fp);
4741+
if (obj == NULL) {
4742+
return NULL;
4743+
}
47474744
return Py_BuildValue("Nl", obj, pos);
47484745
}
47494746

47504747
static PyObject*
47514748
pymarshal_read_object_from_file(PyObject* self, PyObject *args)
47524749
{
4753-
PyObject *obj;
4754-
long pos;
47554750
PyObject *filename;
4756-
FILE *fp;
4757-
47584751
if (!PyArg_ParseTuple(args, "O:pymarshal_read_object_from_file", &filename))
47594752
return NULL;
47604753

4761-
fp = _Py_fopen_obj(filename, "rb");
4754+
FILE *fp = _Py_fopen_obj(filename, "rb");
47624755
if (fp == NULL) {
47634756
PyErr_SetFromErrno(PyExc_OSError);
47644757
return NULL;
47654758
}
47664759

4767-
obj = PyMarshal_ReadObjectFromFile(fp);
4768-
pos = ftell(fp);
4760+
PyObject *obj = PyMarshal_ReadObjectFromFile(fp);
4761+
long pos = ftell(fp);
47694762

47704763
fclose(fp);
4764+
if (obj == NULL) {
4765+
return NULL;
4766+
}
47714767
return Py_BuildValue("Nl", obj, pos);
47724768
}
47734769

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.