BIND 10 #838: "string iterator is not dereferencable" issue
BIND 10 Development
do-not-reply at isc.org
Tue May 24 06:59:51 UTC 2011
#838: "string iterator is not dereferencable" issue
-------------------------------------+-------------------------------------
Reporter: | Owner: jinmei
fdupont | Status: reviewing
Type: | Milestone:
defect | Sprint-20110531
Priority: major | Resolution:
Component: | Sensitive: 0
Unclassified | Sub-Project: DNS
Keywords: | Estimated Difficulty: 0.0
Defect Severity: N/A | Total Hours: 0
Feature Depending on Ticket: |
Add Hours to Ticket: 0 |
Internal?: 0 |
-------------------------------------+-------------------------------------
Comment (by jinmei):
Replying to [comment:18 ocean]:
> > Finally, regarding the conversion of char to signed int for isspace():
> > I don't think checking it with >0 is the cleanest fix. Even though I
> > generally want to avoid relying on casts, it seems to be one of the
> > (rare) cases where a cast makes most sense (and in this case the case
> > should be safe).
> >
> Consider the input is a value in range between [-128, 0), it will be
mapped
> to [0x80, 0xFF) after {{{static_cast<unsigned char>(c)}}}, which are
> control and Latin-1 supplement in Unicode. For example, 0xA0 is
> defined as "non-break space", so whether isspace(0xA0) returned true or
false
> depends on the implementation. I have tested on my pc that it returns 0
for
> [0x80, 0xFF], but I'm afraid that future or other implementation may
break it.
Hmm, point taken. On thinking about it with the rationale, I now tend
to agree that >0 is better than the naive cast. If you like please
feel free to revert that part. But in that case please leave some
comment about the implication. I suspect it's not trivial.
Also, with other fixes I suspect this bug cannot be triggered via our
current tests. Please confirm that (or confirm I'm wrong:-) and if my
observation is correct, please add an explicit test that would
re-introduce this problem, confirm the new code without the additional
>0 check triggers it, and the additional check actually prevents that.
> > I've just committed my counter proposal based on the above comments
> > and pushed it. I also made a couple of unrelated (but STL-related)
> > bugs in the test code. Please check it (it's just a "proposal" and
> > I've pushed it so that we can easily share it.) Also, please consider
> > adding more tests to base64 and hex tests that highlight the problem
> > as I did it for base32hex.
> >
> OK, I will check it.
I've not seen you modify it, so are you okay with them (except the
cast for isspace())?
--
Ticket URL: <http://bind10.isc.org/ticket/838#comment:20>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list