diff --git a/mozilla/intl/uconv/src/ugen.c b/mozilla/intl/uconv/src/ugen.c index 93b27a05444..971f5152715 100644 --- a/mozilla/intl/uconv/src/ugen.c +++ b/mozilla/intl/uconv/src/ugen.c @@ -246,9 +246,15 @@ PRIVATE PRBool uCheckAndGenAlways1Byte( ) { /* Don't check inlen. The caller should ensure it is larger than 0 */ - *outlen = 1; - out[0] = in & 0xff; - return PR_TRUE; + /* Oops, I don't agree. Code changed to check every time. [CATA] */ + if(outbuflen < 1) + return PR_FALSE; + else + { + *outlen = 1; + out[0] = in & 0xff; + return PR_TRUE; + } } /*================================================================================= diff --git a/mozilla/intl/uconv/util/ugen.c b/mozilla/intl/uconv/util/ugen.c index 93b27a05444..971f5152715 100644 --- a/mozilla/intl/uconv/util/ugen.c +++ b/mozilla/intl/uconv/util/ugen.c @@ -246,9 +246,15 @@ PRIVATE PRBool uCheckAndGenAlways1Byte( ) { /* Don't check inlen. The caller should ensure it is larger than 0 */ - *outlen = 1; - out[0] = in & 0xff; - return PR_TRUE; + /* Oops, I don't agree. Code changed to check every time. [CATA] */ + if(outbuflen < 1) + return PR_FALSE; + else + { + *outlen = 1; + out[0] = in & 0xff; + return PR_TRUE; + } } /*=================================================================================