Bug 637852
| Summary: | sasl_io_start_packet: failed - read only 3 bytes of sasl packet length on connection 4 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Retired] 389 | Reporter: | Edward Z. Yang <ezyang> | ||||||
| Component: | Security - SASL | Assignee: | Noriko Hosoi <nhosoi> | ||||||
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Ben Levenson <benl> | ||||||
| Severity: | high | Docs Contact: | |||||||
| Priority: | high | ||||||||
| Version: | 1.2.6 | CC: | amsharma, andrey.ivanov, jgalipea, nhosoi, rmeggins | ||||||
| Target Milestone: | --- | Keywords: | VerifiedUpstream | ||||||
| Target Release: | --- | ||||||||
| Hardware: | x86_64 | ||||||||
| OS: | Linux | ||||||||
| Whiteboard: | |||||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | Environment: | ||||||||
| Last Closed: | 2015-12-10 18:38:49 UTC | Type: | --- | ||||||
| Regression: | --- | Mount Type: | --- | ||||||
| Documentation: | --- | CRM: | |||||||
| Verified Versions: | Category: | --- | |||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||
| Embargoed: | |||||||||
| Bug Depends On: | |||||||||
| Bug Blocks: | 576869, 639035 | ||||||||
| Attachments: |
|
||||||||
|
Description
Edward Z. Yang
2010-09-27 15:39:46 UTC
Created attachment 452769 [details]
git patch file (master)
Description: A SASL packet is made from the 4 byte length and
the length size of payload. When the first 4 bytes were not
successfully received by one PR_Recv call, sasl_io_start_packet
in sasl_io.c considered an error occurred and set PR_IO_ERROR,
which terminates the SASL IO session.
To give clients a chance to send the rest of the length in the
next packet, this patch sets PR_WOULD_BLOCK_ERROR to the nspr
error code and EWOULDBLOCK/EAGAIN to errno and once the succeeding
packet comes in, it appends it to the previous incomplete length
data and continues the SASL IO.
File:
ldap/servers/slapd/sasl_io.c
Created attachment 452772 [details]
git patch file (master)
Description: A SASL packet is made from the 4 byte length and
the length size of payload. When the first 4 bytes were not
successfully received by one PR_Recv call, sasl_io_start_packet
in sasl_io.c considered an error occurred and set PR_IO_ERROR,
which terminates the SASL IO session.
To give clients a chance to send the rest of the length in the
next packet, this patch sets PR_WOULD_BLOCK_ERROR to the nspr
error code and EWOULDBLOCK/EAGAIN to errno and once the succeeding
packet comes in, it appends it to the previous incomplete length
data and continues the SASL IO.
File:
ldap/servers/slapd/sasl_io.c
Thanks to Rich and Nathan for their comments and reviews. Pushed to master. $ git merge work Updating 6a1c273..310c056 Fast-forward ldap/servers/slapd/sasl_io.c | 101 +++++++++++++++++++++++++---------------- 1 files changed, 61 insertions(+), 40 deletions(-) $ git push Counting objects: 11, done. Delta compression using up to 4 threads. Compressing objects: 100% (6/6), done. Writing objects: 100% (6/6), 1.48 KiB, done. Total 6 (delta 4), reused 0 (delta 0) To ssh://git.fedorahosted.org/git/389/ds.git 6a1c273..310c056 master -> master Hello all, we verified today that this patch appears to fix our error, and we are now able to do full updates from 1.2.6 to 1.2.6 with GSSAPI. Thanks for the fix, and we look forward to seeing it in Fedora 13! (In reply to comment #7) > Hello all, we verified today that this patch appears to fix our error, and we > are now able to do full updates from 1.2.6 to 1.2.6 with GSSAPI. Thanks for the > fix, and we look forward to seeing it in Fedora 13! Yes. 389-ds-base-1.2.7.a3 should be out in Updates Testing soon. Thanks Rich, I am marking this bug as VERIFIED U based on comment#10. |