Skip to content

Commit 6978df9

Browse files
committed
Fix integer limit for _curses.resizeterm()
1 parent 9968caa commit 6978df9

File tree

3 files changed

+51
-14
lines changed

3 files changed

+51
-14
lines changed

Lib/test/test_curses.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1095,6 +1095,13 @@ def test_resizeterm(self):
10951095
self.assertEqual(curses.LINES, lines)
10961096
self.assertEqual(curses.COLS, cols)
10971097

1098+
with self.assertRaises(OverflowError):
1099+
curses.resizeterm(35000, 1)
1100+
1101+
# GH-120378: Overflow failure in resizeterm() causes refresh to fail
1102+
tmp = curses.initscr()
1103+
tmp.erase()
1104+
10981105
def test_ungetch(self):
10991106
curses.ungetch(b'A')
11001107
self.assertEqual(self.stdscr.getkey(), 'A')

Modules/_cursesmodule.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4113,9 +4113,9 @@ NoArgNoReturnFunctionBody(resetty)
41134113
/*[clinic input]
41144114
_curses.resizeterm
41154115
4116-
nlines: int
4116+
nlines: short
41174117
Height.
4118-
ncols: int
4118+
ncols: short
41194119
Width.
41204120
/
41214121
@@ -4126,8 +4126,8 @@ window dimensions (in particular the SIGWINCH handler).
41264126
[clinic start generated code]*/
41274127

41284128
static PyObject *
4129-
_curses_resizeterm_impl(PyObject *module, int nlines, int ncols)
4130-
/*[clinic end generated code: output=56d6bcc5194ad055 input=0fca02ebad5ffa82]*/
4129+
_curses_resizeterm_impl(PyObject *module, short nlines, short ncols)
4130+
/*[clinic end generated code: output=4de3abab50c67f02 input=414e92a63e3e9899]*/
41314131
{
41324132
PyObject *result;
41334133

Modules/clinic/_cursesmodule.c.h

Lines changed: 40 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)