Title: More strict format checks in PyUnicode_FromFormat() · Issue #95781 · python/cpython · GitHub
Open Graph Title: More strict format checks in PyUnicode_FromFormat() · Issue #95781 · python/cpython
X Title: More strict format checks in PyUnicode_FromFormat() · Issue #95781 · python/cpython
Description: PyUnicode_FromFormat() is loose in checking for errors in the format string. If it encounter an invalid format specifier, it silently outputs the rest of the format string. And it allows digits between %s: "3%" is interpreted the same...
Open Graph Description: PyUnicode_FromFormat() is loose in checking for errors in the format string. If it encounter an invalid format specifier, it silently outputs the rest of the format string. And it allows digits bet...
X Description: PyUnicode_FromFormat() is loose in checking for errors in the format string. If it encounter an invalid format specifier, it silently outputs the rest of the format string. And it allows digits bet...
Opengraph URL: https://github.com/python/cpython/issues/95781
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"More strict format checks in PyUnicode_FromFormat()","articleBody":"`PyUnicode_FromFormat()` is loose in checking for errors in the format string. If it encounter an invalid format specifier, it silently outputs the rest of the format string. And it allows digits between `%`s: `\"%123%\"` is interpreted the same as `\"%%\"`, i.e. as literal `%`.\r\n\r\nIt was not a big problem, because it is expected that the user of the C API do not make mistakes in the format string, and incorrect format string can easily lead to crash. But id did not help either.\r\n\r\nRecently it was discussed on Discuss: https://discuss.python.org/t/pyunicode-fromformat-allow-format-with-precision/17873.","author":{"url":"https://github.com/serhiy-storchaka","@type":"Person","name":"serhiy-storchaka"},"datePublished":"2022-08-08T11:33:16.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/95781/cpython/issues/95781"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:deb670dd-caf1-ef85-91b4-9f09637e0ffd |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | EC6E:4F147:103CD7A:15BEE2C:6969927A |
| html-safe-nonce | d325e4b9cbccfe2004ac81f3666a42cadc2a31cca6ff6e8fd8f441722f175254 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFQzZFOjRGMTQ3OjEwM0NEN0E6MTVCRUUyQzo2OTY5OTI3QSIsInZpc2l0b3JfaWQiOiIxNzcwOTIwOTUzMjc3NjgyMjk4IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | d13a66ed629996d4da06364916aadc48a39b24c47789da05c07b03ef83dcaa5d |
| hovercard-subject-tag | issue:1331738081 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/python/cpython/95781/issue_layout |
| twitter:image | https://opengraph.githubassets.com/c1c80db844055d121fd5b1216dadce5c21b49eec87f734895ca5f89d3b8c0d0c/python/cpython/issues/95781 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/c1c80db844055d121fd5b1216dadce5c21b49eec87f734895ca5f89d3b8c0d0c/python/cpython/issues/95781 |
| og:image:alt | PyUnicode_FromFormat() is loose in checking for errors in the format string. If it encounter an invalid format specifier, it silently outputs the rest of the format string. And it allows digits bet... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | serhiy-storchaka |
| hostname | github.com |
| expected-hostname | github.com |
| None | 3542e147982176a7ebaa23dfb559c8af16f721c03ec560c68c56b64a0f35e751 |
| turbo-cache-control | no-preview |
| go-import | github.com/python/cpython git https://github.com/python/cpython.git |
| octolytics-dimension-user_id | 1525981 |
| octolytics-dimension-user_login | python |
| octolytics-dimension-repository_id | 81598961 |
| octolytics-dimension-repository_nwo | python/cpython |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 81598961 |
| octolytics-dimension-repository_network_root_nwo | python/cpython |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | af80af7cc9e3de9c336f18b208a600950a3c187c |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width