Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
06d79d02
Commit
06d79d02
authored
Oct 30, 2016
by
Serhiy Storchaka
Browse files
Options
Browse Files
Download
Plain Diff
Issue #28549: Fixed segfault in curses's addch() with ncurses6.
parents
7399e47f
2204580c
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
11 additions
and
8 deletions
+11
-8
Misc/NEWS
Misc/NEWS
+2
-0
Modules/_cursesmodule.c
Modules/_cursesmodule.c
+9
-8
No files found.
Misc/NEWS
View file @
06d79d02
...
...
@@ -30,6 +30,8 @@ Core and Builtins
Library
-------
- Issue #28549: Fixed segfault in curses'
s
addch
()
with
ncurses6
.
-
Issue
#
28449
:
tarfile
.
open
()
with
mode
"r"
or
"r:"
now
tries
to
open
a
tar
file
with
compression
before
trying
to
open
it
without
compression
.
Otherwise
it
had
50
%
chance
failed
with
ignore_zeros
=
True
.
...
...
Modules/_cursesmodule.c
View file @
06d79d02
...
...
@@ -280,7 +280,7 @@ static int
PyCurses_ConvertToCchar_t
(
PyCursesWindowObject
*
win
,
PyObject
*
obj
,
chtype
*
ch
#ifdef HAVE_NCURSESW
,
c
char_t
*
wch
,
w
char_t
*
wch
#endif
)
{
...
...
@@ -298,8 +298,7 @@ PyCurses_ConvertToCchar_t(PyCursesWindowObject *win, PyObject *obj,
PyUnicode_GET_LENGTH
(
obj
));
return
0
;
}
memset
(
wch
->
chars
,
0
,
sizeof
(
wch
->
chars
));
wch
->
chars
[
0
]
=
buffer
[
0
];
*
wch
=
buffer
[
0
];
return
2
;
#else
return
PyCurses_ConvertToChtype
(
win
,
obj
,
ch
);
...
...
@@ -597,7 +596,8 @@ curses_window_addch_impl(PyCursesWindowObject *self, int group_left_1, int y,
int
type
;
chtype
cch
;
#ifdef HAVE_NCURSESW
cchar_t
wch
;
wchar_t
wstr
[
2
];
cchar_t
wcval
;
#endif
const
char
*
funcname
;
...
...
@@ -605,14 +605,15 @@ curses_window_addch_impl(PyCursesWindowObject *self, int group_left_1, int y,
attr
=
A_NORMAL
;
#ifdef HAVE_NCURSESW
type
=
PyCurses_ConvertToCchar_t
(
cwself
,
ch
,
&
cch
,
&
wch
);
type
=
PyCurses_ConvertToCchar_t
(
cwself
,
ch
,
&
cch
,
wstr
);
if
(
type
==
2
)
{
funcname
=
"add_wch"
;
wch
.
attr
=
attr
;
wstr
[
1
]
=
L'\0'
;
setcchar
(
&
wcval
,
wstr
,
attr
,
0
,
NULL
);
if
(
coordinates_group
)
rtn
=
mvwadd_wch
(
cwself
->
win
,
y
,
x
,
&
wc
h
);
rtn
=
mvwadd_wch
(
cwself
->
win
,
y
,
x
,
&
wc
val
);
else
{
rtn
=
wadd_wch
(
cwself
->
win
,
&
wc
h
);
rtn
=
wadd_wch
(
cwself
->
win
,
&
wc
val
);
}
}
else
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment