New submission from Alexey Izbyshev <izbys...@ispras.ru>:

UBSan with -fsanitize=implicit-integer-truncation found a suspicious one:
/scratch2/izbyshev/cpython/Modules/cjkcodecs/_codecs_jp.c:43:17: runtime error: 
implicit conversion from type 'unsigned int' of value 4294966013 (32-bit, 
unsigned) to type 'unsigned char' changed the value to 253 (8-bit, unsigned)

Indeed, the wrong constant was used (the correct one is used in corresponding 
decoder code at 
https://github.com/python/cpython/blob/fd512d76456b65c529a5bc58d8cfe73e4a10de7a/Modules/cjkcodecs/_codecs_jp.c#L105).
 In this case the truncation was harmless because only the lowest byte of the 
wrong result was used, and it was correct. But it probably makes sense to fix 
it if only to reduce noise from UBSan.

All Python versions are affected, but I've marked 3.8 only since I'm not sure 
what the policy for backporting such changes is.

----------
components: Extension Modules
messages: 329489
nosy: izbyshev, serhiy.storchaka, vstinner
priority: normal
severity: normal
status: open
title: A typo in a constant in cp932 codec
type: behavior
versions: Python 3.8

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue35194>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to