ctypes рдореЗрдВ рдЕрдорд╛рдиреНрдп рднрд┐рдиреНрдирд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддреЗ рд╕рдордп рдкрд╛рдпрдерди рдореЗрдВ рднреЗрджреНрдпрддрд╛

рдкрд╛рдпрдерди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ 3.7.10 рдФрд░ 3.6.13 рдХреЗ рд╕реБрдзрд╛рд░рд╛рддреНрдордХ рд░рд┐рд▓реАрдЬрд╝ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдЬреЛ рдПрдХ рднреЗрджреНрдпрддрд╛ (рд╕реАрд╡реАрдИ-2021-3177) рдХреЛ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ ctypes рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдЕрдорд╛рдиреНрдп рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рдирдВрдмрд░реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИред . рд╕рдорд╕реНрдпрд╛ Python 3.8 рдФрд░ 3.9 рд╢рд╛рдЦрд╛рдУрдВ рдХреЛ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдЕрднреА рднреА рд░рд┐рд▓реАрдЬрд╝ рдЙрдореНрдореАрджрд╡рд╛рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИрдВ (рд░рд┐рд▓реАрдЬрд╝ 1 рдорд╛рд░реНрдЪ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИ)ред

рд╕рдорд╕реНрдпрд╛ ctypes рдлрд╝рдВрдХреНрд╢рди PyCArg_repr() рдореЗрдВ рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИ, рдЬреЛ рд╕реНрдкреНрд░рд┐рдВрдЯрдл рдХреЗ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдЙрдкрдпреЛрдЧ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 'sprintf(buffer, " ", рд╕реЗрд▓реНрдл->рдЯреИрдЧ, рд╕реЗрд▓реНрдл->рд╡реИрд▓реНрдпреВ.рдмреА)' рдиреЗ 256 рдмрд╛рдЗрдЯреНрд╕ ("рдЪрд╛рд░ рдмрдлрд░[256]") рдХрд╛ рдПрдХ рд╕реНрдерд┐рд░ рдмрдлрд░ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛, рдЬрдмрдХрд┐ рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рдорд╛рди рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рднреЗрджреНрдпрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк "1e300" рдорд╛рди рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ c_double.from_param рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдкрд░ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкрд░рд┐рдгрд╛рдореА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ 308 рд╡рд░реНрдг рд╣реИрдВ рдФрд░ рдпрд╣ рдПрдХ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ 256-рдмрд╛рдЗрдЯ рдмрдлрд╝рд░. рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдХреЛрдб рдХрд╛ рдЙрджрд╛рд╣рд░рдг: рдЖрдпрд╛рдд ctypes; x = ctypes.c_double.from_param(1e300); рдкреНрд░рддрд┐рдирд┐рдзрд┐(x)

рд╕рдорд╕реНрдпрд╛ рдбреЗрдмрд┐рдпрди, рдЙрдмрдВрдЯреВ рдФрд░ рдлреНрд░реАрдмреАрдПрд╕рдбреА рдореЗрдВ рдареАрдХ рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрд░реНрдХ рд▓рд┐рдирдХреНрд╕, рдлреЗрдбреЛрд░рд╛, рдПрд╕рдпреВрдПрд╕рдИ рдореЗрдВ рдкрд╣рд▓реЗ рд╣реА рдареАрдХ рдХрд░ рджреА рдЧрдИ рд╣реИред рдЖрд░рдПрдЪрдИрдПрд▓ рдореЗрдВ, FORTIFY_SOURCE рдореЛрдб рдореЗрдВ рдкреИрдХреЗрдЬ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рдХрд╛рд░рдг рднреЗрджреНрдпрддрд╛ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЬреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рдРрд╕реЗ рдмрдлрд░ рдУрд╡рд░рдлрд╝реНрд▓реЛ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рддреА рд╣реИред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ