diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2013-10-24 19:04:37 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2013-10-24 19:04:37 (GMT) |
commit | 8b150ecfc9a57fb2d564381464bb04c9a94ee053 (patch) | |
tree | 51011ee81a175f761a8ebb10a593f6d792945ba2 /Modules | |
parent | e5019d5183041f4f75cf4a30b2dc84eed347425e (diff) | |
parent | be80fc9a843e3c51d1030d3eab52d6287e5aef3a (diff) | |
download | cpython-8b150ecfc9a57fb2d564381464bb04c9a94ee053.zip cpython-8b150ecfc9a57fb2d564381464bb04c9a94ee053.tar.gz cpython-8b150ecfc9a57fb2d564381464bb04c9a94ee053.tar.bz2 |
Issue #19327: Fixed the working of regular expressions with too big charset.
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/_sre.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Modules/_sre.c b/Modules/_sre.c index 84330ef..dd9d664 100644 --- a/Modules/_sre.c +++ b/Modules/_sre.c @@ -447,7 +447,7 @@ SRE_CHARSET(SRE_CODE* set, SRE_CODE ch) count = *(set++); if (sizeof(SRE_CODE) == 2) { - block = ((char*)set)[ch >> 8]; + block = ((unsigned char*)set)[ch >> 8]; set += 128; if (set[block*16 + ((ch & 255)>>4)] & (1 << (ch & 15))) return ok; @@ -457,7 +457,7 @@ SRE_CHARSET(SRE_CODE* set, SRE_CODE ch) /* !(c & ~N) == (c < N+1) for any unsigned c, this avoids * warnings when c's type supports only numbers < N+1 */ if (!(ch & ~65535)) - block = ((char*)set)[ch >> 8]; + block = ((unsigned char*)set)[ch >> 8]; else block = -1; set += 64; |