Movatterモバイル変換


[0]ホーム

URL:


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

Sign up
Appearance settings

Commit3e65bae

Browse files
gh-86493: Fix possible leaks in some modules initialization (GH-106768)
Fix _ssl, _stat, _testinternalcapi, _threadmodule, cmath, math, posix, time.
1 parent83ac128 commit3e65bae

File tree

8 files changed

+37
-45
lines changed

8 files changed

+37
-45
lines changed

‎Modules/_ssl.c‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6118,22 +6118,22 @@ sslmodule_init_versioninfo(PyObject *m)
61186118
*/
61196119
libver=OpenSSL_version_num();
61206120
r=PyLong_FromUnsignedLong(libver);
6121-
if (r==NULL||PyModule_AddObject(m,"OPENSSL_VERSION_NUMBER",r))
6121+
if (PyModule_Add(m,"OPENSSL_VERSION_NUMBER",r)<0)
61226122
return-1;
61236123

61246124
parse_openssl_version(libver,&major,&minor,&fix,&patch,&status);
61256125
r=Py_BuildValue("IIIII",major,minor,fix,patch,status);
6126-
if (r==NULL||PyModule_AddObject(m,"OPENSSL_VERSION_INFO",r))
6126+
if (PyModule_Add(m,"OPENSSL_VERSION_INFO",r)<0)
61276127
return-1;
61286128

61296129
r=PyUnicode_FromString(OpenSSL_version(OPENSSL_VERSION));
6130-
if (r==NULL||PyModule_AddObject(m,"OPENSSL_VERSION",r))
6130+
if (PyModule_Add(m,"OPENSSL_VERSION",r)<0)
61316131
return-1;
61326132

61336133
libver=OPENSSL_VERSION_NUMBER;
61346134
parse_openssl_version(libver,&major,&minor,&fix,&patch,&status);
61356135
r=Py_BuildValue("IIIII",major,minor,fix,patch,status);
6136-
if (r==NULL||PyModule_AddObject(m,"_OPENSSL_API_VERSION",r))
6136+
if (PyModule_Add(m,"_OPENSSL_API_VERSION",r)<0)
61376137
return-1;
61386138

61396139
return0;

‎Modules/_stat.c‎

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -591,17 +591,17 @@ stat_exec(PyObject *module)
591591
ADD_INT_MACRO(module,FILE_ATTRIBUTE_TEMPORARY);
592592
ADD_INT_MACRO(module,FILE_ATTRIBUTE_VIRTUAL);
593593

594-
if (PyModule_AddObject(module,"IO_REPARSE_TAG_SYMLINK",
595-
PyLong_FromUnsignedLong(IO_REPARSE_TAG_SYMLINK))<0) {
596-
return-1;
594+
if (PyModule_Add(module,"IO_REPARSE_TAG_SYMLINK",
595+
PyLong_FromUnsignedLong(IO_REPARSE_TAG_SYMLINK))<0) {
596+
return-1;
597597
}
598-
if (PyModule_AddObject(module,"IO_REPARSE_TAG_MOUNT_POINT",
599-
PyLong_FromUnsignedLong(IO_REPARSE_TAG_MOUNT_POINT))<0) {
600-
return-1;
598+
if (PyModule_Add(module,"IO_REPARSE_TAG_MOUNT_POINT",
599+
PyLong_FromUnsignedLong(IO_REPARSE_TAG_MOUNT_POINT))<0) {
600+
return-1;
601601
}
602-
if (PyModule_AddObject(module,"IO_REPARSE_TAG_APPEXECLINK",
603-
PyLong_FromUnsignedLong(IO_REPARSE_TAG_APPEXECLINK))<0) {
604-
return-1;
602+
if (PyModule_Add(module,"IO_REPARSE_TAG_APPEXECLINK",
603+
PyLong_FromUnsignedLong(IO_REPARSE_TAG_APPEXECLINK))<0) {
604+
return-1;
605605
}
606606
#endif
607607

‎Modules/_testinternalcapi.c‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1511,13 +1511,13 @@ static PyMethodDef module_functions[] = {
15111511
staticint
15121512
module_exec(PyObject*module)
15131513
{
1514-
if (PyModule_AddObject(module,"SIZEOF_PYGC_HEAD",
1515-
PyLong_FromSsize_t(sizeof(PyGC_Head)))<0) {
1514+
if (PyModule_Add(module,"SIZEOF_PYGC_HEAD",
1515+
PyLong_FromSsize_t(sizeof(PyGC_Head)))<0) {
15161516
return1;
15171517
}
15181518

1519-
if (PyModule_AddObject(module,"SIZEOF_TIME_T",
1520-
PyLong_FromSsize_t(sizeof(time_t)))<0) {
1519+
if (PyModule_Add(module,"SIZEOF_TIME_T",
1520+
PyLong_FromSsize_t(sizeof(time_t)))<0) {
15211521
return1;
15221522
}
15231523

‎Modules/_threadmodule.c‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1671,8 +1671,8 @@ thread_module_exec(PyObject *module)
16711671
// Round towards minus infinity
16721672
timeout_max=floor(timeout_max);
16731673

1674-
if (PyModule_AddObject(module,"TIMEOUT_MAX",
1675-
PyFloat_FromDouble(timeout_max))<0) {
1674+
if (PyModule_Add(module,"TIMEOUT_MAX",
1675+
PyFloat_FromDouble(timeout_max))<0) {
16761676
return-1;
16771677
}
16781678

‎Modules/cmathmodule.c‎

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1217,30 +1217,29 @@ static PyMethodDef cmath_methods[] = {
12171217
staticint
12181218
cmath_exec(PyObject*mod)
12191219
{
1220-
if (PyModule_AddObject(mod,"pi",PyFloat_FromDouble(Py_MATH_PI))<0) {
1220+
if (PyModule_Add(mod,"pi",PyFloat_FromDouble(Py_MATH_PI))<0) {
12211221
return-1;
12221222
}
1223-
if (PyModule_AddObject(mod,"e",PyFloat_FromDouble(Py_MATH_E))<0) {
1223+
if (PyModule_Add(mod,"e",PyFloat_FromDouble(Py_MATH_E))<0) {
12241224
return-1;
12251225
}
12261226
// 2pi
1227-
if (PyModule_AddObject(mod,"tau",PyFloat_FromDouble(Py_MATH_TAU))<0) {
1227+
if (PyModule_Add(mod,"tau",PyFloat_FromDouble(Py_MATH_TAU))<0) {
12281228
return-1;
12291229
}
1230-
if (PyModule_AddObject(mod,"inf",PyFloat_FromDouble(Py_INFINITY))<0) {
1230+
if (PyModule_Add(mod,"inf",PyFloat_FromDouble(Py_INFINITY))<0) {
12311231
return-1;
12321232
}
12331233

12341234
Py_complexinfj= {0.0,Py_INFINITY};
1235-
if (PyModule_AddObject(mod,"infj",
1236-
PyComplex_FromCComplex(infj))<0) {
1235+
if (PyModule_Add(mod,"infj",PyComplex_FromCComplex(infj))<0) {
12371236
return-1;
12381237
}
1239-
if (PyModule_AddObject(mod,"nan",PyFloat_FromDouble(fabs(Py_NAN)))<0) {
1238+
if (PyModule_Add(mod,"nan",PyFloat_FromDouble(fabs(Py_NAN)))<0) {
12401239
return-1;
12411240
}
12421241
Py_complexnanj= {0.0,fabs(Py_NAN)};
1243-
if (PyModule_AddObject(mod,"nanj",PyComplex_FromCComplex(nanj))<0) {
1242+
if (PyModule_Add(mod,"nanj",PyComplex_FromCComplex(nanj))<0) {
12441243
return-1;
12451244
}
12461245

‎Modules/mathmodule.c‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4037,20 +4037,20 @@ math_exec(PyObject *module)
40374037
if (state->str___trunc__==NULL) {
40384038
return-1;
40394039
}
4040-
if (PyModule_AddObject(module,"pi",PyFloat_FromDouble(Py_MATH_PI))<0) {
4040+
if (PyModule_Add(module,"pi",PyFloat_FromDouble(Py_MATH_PI))<0) {
40414041
return-1;
40424042
}
4043-
if (PyModule_AddObject(module,"e",PyFloat_FromDouble(Py_MATH_E))<0) {
4043+
if (PyModule_Add(module,"e",PyFloat_FromDouble(Py_MATH_E))<0) {
40444044
return-1;
40454045
}
40464046
// 2pi
4047-
if (PyModule_AddObject(module,"tau",PyFloat_FromDouble(Py_MATH_TAU))<0) {
4047+
if (PyModule_Add(module,"tau",PyFloat_FromDouble(Py_MATH_TAU))<0) {
40484048
return-1;
40494049
}
4050-
if (PyModule_AddObject(module,"inf",PyFloat_FromDouble(Py_INFINITY))<0) {
4050+
if (PyModule_Add(module,"inf",PyFloat_FromDouble(Py_INFINITY))<0) {
40514051
return-1;
40524052
}
4053-
if (PyModule_AddObject(module,"nan",PyFloat_FromDouble(fabs(Py_NAN)))<0) {
4053+
if (PyModule_Add(module,"nan",PyFloat_FromDouble(fabs(Py_NAN)))<0) {
40544054
return-1;
40554055
}
40564056
return0;

‎Modules/posixmodule.c‎

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13466,7 +13466,7 @@ setup_confname_table(struct constdef *table, size_t tablesize,
1346613466
}
1346713467
Py_DECREF(o);
1346813468
}
13469-
returnPyModule_AddObject(module,tablename,d);
13469+
returnPyModule_Add(module,tablename,d);
1347013470
}
1347113471

1347213472
/* Return -1 on failure, 0 on success. */
@@ -16781,11 +16781,9 @@ posixmodule_exec(PyObject *m)
1678116781
#endif
1678216782

1678316783
/* Initialize environ dictionary */
16784-
PyObject*v=convertenviron();
16785-
Py_XINCREF(v);
16786-
if (v==NULL||PyModule_AddObject(m,"environ",v)!=0)
16784+
if (PyModule_Add(m,"environ",convertenviron())!=0) {
1678716785
return-1;
16788-
Py_DECREF(v);
16786+
}
1678916787

1679016788
if (all_ins(m))
1679116789
return-1;
@@ -16900,9 +16898,7 @@ posixmodule_exec(PyObject *m)
1690016898
Py_DECREF(unicode);
1690116899
}
1690216900

16903-
PyModule_AddObject(m,"_have_functions",list);
16904-
16905-
return0;
16901+
returnPyModule_Add(m,"_have_functions",list);
1690616902
}
1690716903

1690816904

‎Modules/timemodule.c‎

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1790,11 +1790,9 @@ init_timezone(PyObject *m)
17901790
return-1;
17911791
}
17921792
#endif// MS_WINDOWS
1793-
PyObject*tzname_obj=Py_BuildValue("(NN)",otz0,otz1);
1794-
if (tzname_obj==NULL) {
1793+
if (PyModule_Add(m,"tzname",Py_BuildValue("(NN)",otz0,otz1))<0) {
17951794
return-1;
17961795
}
1797-
PyModule_AddObject(m,"tzname",tzname_obj);
17981796
#else// !HAVE_DECL_TZNAME
17991797
staticconsttime_tYEAR= (365*24+6)*3600;
18001798
time_tt;
@@ -1837,10 +1835,9 @@ init_timezone(PyObject *m)
18371835
PyModule_AddIntConstant(m,"daylight",janzone!=julyzone);
18381836
tzname_obj=Py_BuildValue("(zz)",janname,julyname);
18391837
}
1840-
if (tzname_obj==NULL) {
1838+
if (PyModule_Add(m,"tzname",tzname_obj)<0) {
18411839
return-1;
18421840
}
1843-
PyModule_AddObject(m,"tzname",tzname_obj);
18441841
#endif// !HAVE_DECL_TZNAME
18451842

18461843
if (PyErr_Occurred()) {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp