Jorge Barreiro wrote: > I've checked the CVS head code and I've found the error: the length of the > target array was wrong. I've checked the history of this class too. It seems > that this issue was already detected, but the fix was wrong and was reverted. > > I attach my patch (base64len.patch), which corrects the length of the target > array (so there's no need to truncate, I've removed that code), and > uncommented the code to fill with padding simbols again. > > The second patch (base64dec.patch) is for the decode function. That function > works ok, but I detected something odd with the target array length. First, a > buffer with an arbitrary length is created, then it's truncated to the > correct size. But the length of the target array can be known beforehand, > there's no need to truncate the array at the end. > > With this patch, the method will throw an arrayoutofindex exception if the > given array length is not divisible by 4, which I think is ok, since the > result would be incorrect. > > Please, let me know if you are going to apply the patch (specially the first > one).
I applied both of these to HEAD, thank you very much. I agree that throwing an exception is fine in the case you describe. -- Chris Burdess _______________________________________________ Classpath-inetlib mailing list Classpath-inetlib@gnu.org http://lists.gnu.org/mailman/listinfo/classpath-inetlib