Patch for Review: JvGetStringUTFChars
Bryce McKinlay
bryce@mckinlay.net.nz
Wed Aug 13 10:58:00 GMT 2003
On Wednesday, Aug 13, 2003, at 19:52 Pacific/Auckland, Mohan Embar
wrote:
> After careful consideration, I've decided not to go with Bryce's
> suggestion of checking buffer size:
>
> http://gcc.gnu.org/ml/java-patches/2003-q3/msg00308.html
>
> ...because:
>
> - this would involve an additional call to JvGetStringUTFLength
> for bounds checking
It is going to leave application code vunerable buffer overrun bugs in
user code if they do not call JvGetStringUTFLength, so you are shifting
the responsibility of doing this onto the user. If you are making the
user do the JvGetStringUTFLength call then this new call doesn't make
life much easier for anybody. I thought the point of it was to reduce
the amount of code people have to write to convert strings?
> - JvGetStringUTFRegion does not do this bounds checking either
JvGetStringUTFRegion cannot be safely used without a corresponding call
to JvGetStringUTFLength. If its being used somewhere without one then
that is a serious bug.
> - the caller can call JvGetStringUTFLength beforehand if s/he wants to
They MUST do so. I'm sure your aware of what happens when code that
fails to check bounds ends web servers and such. I'm sure someone will
want to run a web server on GCJ some day.
> - the _Jv_TempUTFString class and JV_TEMP_UTF_STRING macro
> (subsequent patch) will also shield us from this
Seems like these are two solutions to the same problem. Why do we need
both?
Regards
Bryce
More information about the Java-patches
mailing list