Red Hat Bugzilla – Bug 800154
Bugs found in python-iwlib-1.1-2.fc17 using gcc-with-cpychecker static analyzer
Last modified: 2012-04-18 18:56:29 EDT
Description of problem:
I've been writing an experimental static analysis tool to detect bugs commonly occurring within C Python extension modules:
I ran the latest version of the tool (in git master; post 0.9) on
python-iwlib-1.1-2.fc17.src.rpm, and it reports various errors.
You can see a list of errors here, triaged into categories (from most significant to least significant):
I've manually reviewed the issues reported by the tool; all of them appear to relate to code of this form:
This will leak references: PyDict_SetItem() adds new references to the key and the value, it doesn't steal references to the inputs.
Also, PyString_FromString() can fail under low memory conditions, returning NULL, and PyDict_SetItem(dict, NULL, ...) or PyDict_SetItem(dict, ..., NULL) will segfault.
(the use of PyDict_SetItemString() would simplify this code, removing two sets of errors).
There may of course be other bugs in my checker tool.
Hope this is helpful; let me know if you need help reading the logs that the tool generates - I know that it could use some improvement.
Version-Release number of selected component (if applicable):
gcc-python-plugin post-0.9 git 11462291a66c8db693c8884cb84b795bb5988ffb running the checker in an *f16* chroot
(In reply to comment #0)
> (the use of PyDict_SetItemString() would simplify this code, removing two sets
> of errors).
Would this be sufficient ?
python-iwlib-1.2-1.fc17 has been submitted as an update for Fedora 17.
* should fix your issue,
* was pushed to the Fedora 17 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing python-iwlib-1.2-1.fc17'
as soon as you are able to.
Please go to the following url:
then log in and leave karma (feedback).
python-iwlib-1.2-1.fc17 has been pushed to the Fedora 17 stable repository. If problems still persist, please make note of it in this bug report.