python: check file pointer when loading trusted setup (#401)

Co-authored-by: George Kadianakis <desnacked@riseup.net>
This commit is contained in:
Justin Traglia 2024-03-04 08:43:22 -06:00 committed by GitHub
parent 486b15b305
commit 2ab0c219fc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 11 additions and 2 deletions

View File

@ -10,15 +10,24 @@ static void free_KZGSettings(PyObject *c) {
static PyObject* load_trusted_setup_wrap(PyObject *self, PyObject *args) {
PyObject *f;
FILE *fp;
if (!PyArg_ParseTuple(args, "U", &f))
return PyErr_Format(PyExc_ValueError, "expected a string");
KZGSettings *s = (KZGSettings*)malloc(sizeof(KZGSettings));
if (s == NULL) return PyErr_NoMemory();
if (load_trusted_setup_file(s, fopen(PyUnicode_AsUTF8(f), "r")) != C_KZG_OK) {
fp = fopen(PyUnicode_AsUTF8(f), "r");
if (fp == NULL) {
free(s);
return PyErr_Format(PyExc_RuntimeError, "error reading trusted setup");
}
C_KZG_RET ret = load_trusted_setup_file(s, fp);
fclose(fp);
if (ret != C_KZG_OK) {
free(s);
return PyErr_Format(PyExc_RuntimeError, "error loading trusted setup");
}