Summary
openssl egg is tripping on utf8, someplace
Metadata
- Id: 5a60865b1163b5530b8b8da12150659576b396b5
- Trac id: 954
- Type: defect
- Reporter: sethalves
- Owner: chust
- Cc:
- Status: closed
- Component: extensions
- Estimated difficulty:
- Resolution: fixed
- Priority: minor
- Milestone: someday
- Version: 4.8.x
- Changetime: 2013-01-10 22:04:09 UTC
- Created: 2012-12-01 22:25:03 UTC
- Keywords: openssl utf8
Attachments
- 5a60865b1163b5530b8b8da12150659576b396b5/attachments/openssl-get-uchar.diff.txt
Description
When using read-byte on a port returned from the openssl egg, if a byte with a high bit set arrives, something goes wrong.
See:
http://paste.lisp.org/display/134012#1
The second paste outputs:
(61 62 63 1fffef 1fffbf 1fffa0 31 32 33)
rather than the expected:
(61 62 63 ef bf a0 31 32 33)
Changes and comments
[2013-01-04 04:08:44 UTC] zbigniew wrote:
I haven't tested this, but try the attached patch if you can. The issue appears to be a sign error; C_make_character effectively expects int (or an unsigned char). If passed a regular char with high bit set, that's a negative value, which is sign-extended when converted to int and then treated as unicode.
[2013-01-04 04:09:11 UTC] zbigniew attached openssl-get-uchar.diff.txt (description=#f)
[2013-01-04 04:29:36 UTC] zbigniew changed status from new to assigned
[2013-01-04 04:29:36 UTC] zbigniew set owner to chust
[2013-01-04 04:29:36 UTC] zbigniew wrote:
Reported to work by sethalves on IRC. I'll leave this open for about a week and commit it if Thomas does not get a chance.
[2013-01-10 22:04:09 UTC] zbigniew changed status from assigned to closed
[2013-01-10 22:04:09 UTC] zbigniew set resolution to fixed
[2013-01-10 22:04:09 UTC] zbigniew wrote:
Fixed in 1.6.2.