Message231289
Ah, sorry. Ok. Now a different issue: the user-defined function can return an interned string. If it has a refcount of 1, _PyString_FormatLong() will mutate it. Then when we DECREF it, string_dealloc() will not find it any more in the interned dict and crash with a fatal error.
Note that I'm mostly having fun finding holes in delicate logic, like mutating strings in-place. It would be much more simple to either (1) stop calling the user-defined functions and behave similarly to most other built-in types; or (2) stop trying to mutate that poor string in-place and always just create a new one. :-) |
|
Date |
User |
Action |
Args |
2014-11-17 17:33:45 | arigo | set | recipients:
+ arigo, amaury.forgeotdarc, eric.smith, benjamin.peterson, eric.araujo, francismb, serhiy.storchaka |
2014-11-17 17:33:45 | arigo | set | messageid: <1416245625.61.0.0186236689431.issue11145@psf.upfronthosting.co.za> |
2014-11-17 17:33:45 | arigo | link | issue11145 messages |
2014-11-17 17:33:45 | arigo | create | |
|