base64.mod bug and fix...

BlitzMax Forums/Brucey's Modules/base64.mod bug and fix...

matibee(Posted 2012) [#1]
I've just hit an issue where decoded padded output would return invalid characters at the end of the string. It seems String.FromBytes doesn't bother stopping when it hits a zero (most likely due to the unicode support).

The TBase64.decode function was ending like this..

    Return String.FromBytes(outBuff, outBuff.length )


but padded output will leave zeros at the end of outBuff[] and these become invalid characters in the returned string (as I found out when I WriteLine'd them to a file).

Replace that with this...

    Local stringLength:Int = outbuff.length
    While ( outbuff[ stringLength - 1 ] = 0 )
        stringLength :- 1
    Wend 

    Return String.FromBytes(outBuff, stringLength )