Fix possible leak of return of PySequence_GetItem.#13333
Fix possible leak of return of PySequence_GetItem.#13333NelleV merged 1 commit intomatplotlib:masterfrom
Conversation
| return NULL; | ||
| } | ||
| codes[i] = PyBytes_AsString(item); | ||
| Py_DECREF(item); |
There was a problem hiding this comment.
Just change the PyArg_ParseTuple call to use a (yyyyy) format for parsing the codes argument instead?
There was a problem hiding this comment.
I am 50/50 on that. It lets python do more of the work, but is also a bigger change.
There was a problem hiding this comment.
I think all of our callers pass the right length lists, but as I'm targeting 3.0.3 with this, I'm not sure if it's quite as safe to be backporting that version.
There was a problem hiding this comment.
But we already error out a few lines above if the length is not 5.
Anyways I don't want to insist too much on this, if you don't want to make the bigger change that's fine with me too.
…333-on-v3.0.x Backport PR #13333 on branch v3.0.x (Fix possible leak of return of PySequence_GetItem.)
PR Summary
PySequence_GetItemreturns a new reference, which we should decrement.Note: Technically, the string (from
PyBytes_AsString) requires the object to be ref'd, but we know it won't get GC'd because there's a ref by the containing object, and doing it early means we don't have to worry about error handling.PR Checklist