This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2016年07月22日 07:22 by pavel-belikov, last changed 2022年04月11日 14:58 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| issue27587_pystate_addmodule.diff | berker.peksag, 2016年07月25日 02:03 | review | ||
| issue27587_pystate_addmodule_v2.diff | berker.peksag, 2016年08月18日 13:10 | review | ||
| Messages (12) | |||
|---|---|---|---|
| msg270974 - (view) | Author: Pavel Belikov (pavel-belikov) | Date: 2016年07月22日 07:22 | |
To demonstrate the capabilities of our analyzer, we regularly perform analysis of open source projects. We had recently checked the CPython project. Here is the link to the article about it: http://www.viva64.com/en/b/0414/ Official page of the analyzer: http://www.viva64.com/en/pvs-studio/ If you have any questions, or if you are interested in the evaluation of our static analyzer or in any other source code quality control services that our company provides, please contact us at support@viva64.com. |
|||
| msg270978 - (view) | Author: Martin Panter (martin.panter) * (Python committer) | Date: 2016年07月22日 08:14 | |
Thanks for the report. You seem to have identified some code from Open SSL as being from Python (e.g. ASN1_PRINTABLE_type() function in a_print.c). Here’s a quick copy of the details relevant to Python: V547 Expression 's->sock_fd < 0' is always false. Unsigned type value is never < 0. Modules/socketmodule.c:655 V547 Expression 's->sock_fd < 0' is always false. Unsigned type value is never < 0. Modules/_ssl.c:1702 V547 Expression 'sock->sock_fd < 0' is always false. Unsigned type value is never < 0. Modules/_ssl.c:2018 Suggestion: compare with INVALID_SOCKET V614 Potentially uninitialized pointer 'sigint_event' used. Modules/_multiprocessing/semaphore.c:120 V728 An excessive check can be simplified. The '||' operator is surrounded by opposite expressions 'quotetabs' and '!quotetabs'. Modules/binascii.c:1453 Null pointer check after use of "def" in _PyState_AddModule(), Python/pystate.c V595 The 'self->extra' pointer was utilized before it was verified against nullptr. Check lines: 917, 923. Modules/_elementtree.c:917 The first two groups (sock_fd and sigint_event) look like Windows-specific code, and I suspect would be diagnosed with GCC (but building Python with GCC on Windows needs work). |
|||
| msg271002 - (view) | Author: Berker Peksag (berker.peksag) * (Python committer) | Date: 2016年07月22日 17:31 | |
> V547 Expression 's->sock_fd < 0' is always false. Unsigned type value is never < 0. Modules/socketmodule.c:655 > V547 Expression 's->sock_fd < 0' is always false. Unsigned type value is never < 0. Modules/_ssl.c:1702 > V547 Expression 'sock->sock_fd < 0' is always false. Unsigned type value is never < 0. Modules/_ssl.c:2018 Victor fixed these issues in 6c11f52ab9db and 025281485318. > V614 Potentially uninitialized pointer 'sigint_event' used. Modules/_multiprocessing/semaphore.c:120 See issue 27591. |
|||
| msg271042 - (view) | Author: Martin Panter (martin.panter) * (Python committer) | Date: 2016年07月22日 23:55 | |
Christian Heimes posted a patch for _PyState_AddModule() on Python-dev: https://marc.info/?l=python-dev&m=146922730716425&w=2 |
|||
| msg271046 - (view) | Author: Martin Panter (martin.panter) * (Python committer) | Date: 2016年07月23日 00:15 | |
Also on python-dev, Chris Angelico pointed out that the _elementtree.c case is a false positive. So that would leave the binascii one, which I think is worth simpifying, but is probably not very serious. |
|||
| msg271079 - (view) | Author: Christian Heimes (christian.heimes) * (Python committer) | Date: 2016年07月23日 13:47 | |
Hi Pavel, The issues in ASN1_PRINTABLE_type() [N2], BN_mask_bits() [N4 bn_lib.c, digest.c, evp_enc.c], dh_cms_set_peerkey() [N5, dh_ameth.c] and cms_env_set_version() [N6, cms_env.c] are all OpenSSL issues and should be reported to OpenSSL. The Windows build system also builds a static version of OpenSSL and a couple of other dependencies. |
|||
| msg271205 - (view) | Author: Berker Peksag (berker.peksag) * (Python committer) | Date: 2016年07月25日 02:03 | |
I'm attaching Christian's patch at https://marc.info/?l=python-dev&m=146922730716425&w=2 as issue27587_pystate_addmodule.diff to make code reviewing easier. |
|||
| msg272666 - (view) | Author: Stefan Krah (skrah) * (Python committer) | Date: 2016年08月14日 11:33 | |
Pavel did another analysis with the external packages removed. Thanks for this! http://www.viva64.com/en/b/0418/ The new analysis found another glitch. Also see my message to python-committers. |
|||
| msg272669 - (view) | Author: Stefan Krah (skrah) * (Python committer) | Date: 2016年08月14日 12:09 | |
Sorry, I missed issue27587_pystate_addmodule.diff: no new issue in the updated analysis. |
|||
| msg273026 - (view) | Author: Berker Peksag (berker.peksag) * (Python committer) | Date: 2016年08月18日 13:10 | |
Here is an updated patch. |
|||
| msg273045 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2016年08月18日 16:21 | |
issue27587_pystate_addmodule_v2.diff LGTM. |
|||
| msg273379 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2016年08月22日 15:06 | |
New changeset 51627344fc58 by Berker Peksag in branch '3.5': Issue #27587: Move null pointer check earlier in _PyState_AddModule() https://hg.python.org/cpython/rev/51627344fc58 New changeset 7d90bf4780ff by Berker Peksag in branch 'default': Issue #27587: Merge from 3.5 https://hg.python.org/cpython/rev/7d90bf4780ff |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:58:34 | admin | set | github: 71774 |
| 2016年08月22日 15:06:49 | berker.peksag | set | status: open -> closed resolution: fixed stage: patch review -> resolved |
| 2016年08月22日 15:06:15 | python-dev | set | nosy:
+ python-dev messages: + msg273379 |
| 2016年08月18日 16:21:38 | vstinner | set | messages: + msg273045 |
| 2016年08月18日 13:10:53 | berker.peksag | set | files:
+ issue27587_pystate_addmodule_v2.diff messages: + msg273026 |
| 2016年08月14日 12:09:29 | skrah | set | messages: + msg272669 |
| 2016年08月14日 11:33:52 | skrah | set | nosy:
+ skrah messages: + msg272666 |
| 2016年07月25日 02:03:54 | berker.peksag | set | files:
+ issue27587_pystate_addmodule.diff keywords: + patch |
| 2016年07月25日 02:03:42 | berker.peksag | set | messages:
+ msg271205 stage: needs patch -> patch review |
| 2016年07月23日 13:57:36 | Rosuav | set | nosy:
+ Rosuav |
| 2016年07月23日 13:47:15 | christian.heimes | set | nosy:
+ christian.heimes messages: + msg271079 |
| 2016年07月23日 00:15:07 | martin.panter | set | messages: + msg271046 |
| 2016年07月22日 23:55:28 | martin.panter | set | messages: + msg271042 |
| 2016年07月22日 17:42:12 | vstinner | set | nosy:
+ vstinner |
| 2016年07月22日 17:31:36 | berker.peksag | set | versions:
+ Python 3.5, Python 3.6 nosy: + berker.peksag messages: + msg271002 stage: needs patch |
| 2016年07月22日 16:49:48 | cvrebert | set | nosy:
+ cvrebert |
| 2016年07月22日 08:14:56 | martin.panter | set | nosy:
+ paul.moore, tim.golden, martin.panter, zach.ware, steve.dower messages: + msg270978 components: + Windows type: enhancement -> compile error |
| 2016年07月22日 07:22:12 | pavel-belikov | create | |