[Patches] [ python-Patches-1297028 ] cjkcodecs does not initialize type pointer
SourceForge.net
noreply at sourceforge.net
Fri Sep 23 18:25:27 CEST 2005
Patches item #1297028, was opened at 2005-09-20 16:25
Message generated for change (Comment added) made by nnorwitz
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1297028&group_id=5470
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Modules
Group: Python 2.4
Status: Closed
Resolution: Accepted
Priority: 9
Submitted By: Eric Huss (ehuss)
Assigned to: Anthony Baxter (anthonybaxter)
Summary: cjkcodecs does not initialize type pointer
Initial Comment:
The cjkcodecs code does not initialize the ob_type
pointer for the 3 type objects it defines.
The following code will illustrate a segmentation fault:
>>> import _codecs_cn
>>> c = _codecs_cn.getcodec('gb2312')
>>> type(c)
Segmentation fault (core dumped)
I have attached a patch which should solve the problem.
----------------------------------------------------------------------
>Comment By: Neal Norwitz (nnorwitz)
Date: 2005-09-23 09:25
Message:
Logged In: YES
user_id=33168
Ok, thanks. I remembered something about Windows here, but
wasn't sure. I looked at some module that it did it the
other way. I'm not going to change what's been checked in.
----------------------------------------------------------------------
Comment By: Eric Huss (ehuss)
Date: 2005-09-23 09:16
Message:
Logged In: YES
user_id=393416
Good question. I'm following the convention that the majority
of the Python modules follow. There are 74 instances where
it uses NULL and only 19 where it is immediately defined
(with zipimport and xxsubtype doing some weird
DEFERRED_ADDRESS macro). In section 10.3 in the API
docs it recommends doing this for dynamically loading
modules (in windows). I wasn't sure if anyone compiles the
module as a shared module, so I figured it would be safer to
do it this way.
----------------------------------------------------------------------
Comment By: Neal Norwitz (nnorwitz)
Date: 2005-09-22 20:29
Message:
Logged In: YES
user_id=33168
Eric, I have a question about your patch. Is there any
reason you didn't change PyObject_HEAD_INIT(NULL) to
PyObject_HEAD_INIT(&PyType_Type) rather than do the
assignment in init?
Thanks.
----------------------------------------------------------------------
Comment By: Neal Norwitz (nnorwitz)
Date: 2005-09-22 20:25
Message:
Logged In: YES
user_id=33168
I figured Anthony is busy enough. I checked this in since he
said he would. My bad if you didn't want it in 2.4.2.
Checked in as:
* Misc/NEWS 1.1193.2.107
* Modules/cjkcodecs/multibytecodec.c 1.3.2.1
----------------------------------------------------------------------
Comment By: Anthony Baxter (anthonybaxter)
Date: 2005-09-20 23:57
Message:
Logged In: YES
user_id=29957
Yes, branch is still frozen. I'll check this in once 2.4.2c1
is out (before 2.4.2 final). I can't get a test case to fail
(rather than just segfault).
----------------------------------------------------------------------
Comment By: Neal Norwitz (nnorwitz)
Date: 2005-09-20 23:46
Message:
Logged In: YES
user_id=33168
Thanks!
Checked in as:
* Misc/NEWS 1.1374
* Modules/cjkcodecs/multibytecodec.c 1.4
This needs to be backported. Anthony is the branch still
frozen? Feel free to backport this.
I tried to create a test, but it didn't crash. If someone
can write a test that crashes when running under
regrtest.py, that would be great.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1297028&group_id=5470
More information about the Patches
mailing list