diff options
| author | Serhiy Storchaka <storchaka@gmail.com> | 2015-02-03 09:30:51 +0200 |
|---|---|---|
| committer | Serhiy Storchaka <storchaka@gmail.com> | 2015-02-03 09:30:51 +0200 |
| commit | f8bf9e370f256d0c50127046a6aa9cb9172bb83c (patch) | |
| tree | 49a77747ca6a66ba6be2ca033a69c2a2c0a8e74e /Python/traceback.c | |
| parent | 1b9e42530b6406252fdbab73ab52dbf9e51a3421 (diff) | |
| parent | ee72ac6e35df0db14bfc93642b2f326266d897ae (diff) | |
| download | cpython-f8bf9e370f256d0c50127046a6aa9cb9172bb83c.tar.gz | |
Issue #23099: Closing io.BytesIO with exported buffer is rejected now to
prevent corrupting exported buffer.
Diffstat (limited to 'Python/traceback.c')
| -rw-r--r-- | Python/traceback.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/Python/traceback.c b/Python/traceback.c index c2aba522bf..e3adc96ae8 100644 --- a/Python/traceback.c +++ b/Python/traceback.c @@ -231,7 +231,7 @@ _Py_FindSourceFile(PyObject *filename, char* namebuf, size_t namelen, PyObject * } strcpy(namebuf, PyBytes_AS_STRING(path)); Py_DECREF(path); - if (strlen(namebuf) != len) + if (strlen(namebuf) != (size_t)len) continue; /* v contains '\0' */ if (len > 0 && namebuf[len-1] != SEP) namebuf[len++] = SEP; @@ -575,15 +575,16 @@ dump_ascii(int fd, PyObject *text) ch = PyUnicode_READ(kind, data, i); else ch = wstr[i]; - if (ch < 128) { + if (' ' <= ch && ch <= 126) { + /* printable ASCII character */ char c = (char)ch; write(fd, &c, 1); } - else if (ch < 0xff) { + else if (ch <= 0xff) { PUTS(fd, "\\x"); dump_hexadecimal(fd, ch, 2); } - else if (ch < 0xffff) { + else if (ch <= 0xffff) { PUTS(fd, "\\u"); dump_hexadecimal(fd, ch, 4); } @@ -678,7 +679,7 @@ write_thread_id(int fd, PyThreadState *tstate, int is_current) PUTS(fd, "Current thread 0x"); else PUTS(fd, "Thread 0x"); - dump_hexadecimal(fd, (unsigned long)tstate->thread_id, sizeof(long)*2); + dump_hexadecimal(fd, (unsigned long)tstate->thread_id, sizeof(unsigned long)*2); PUTS(fd, " (most recent call first):\n"); } |
