recv() on a UDP socket will always return a string of exactly the size you asked for, even if the packet received is smaller. Knowledge of the actual length of the packet received is lost. The fix is pretty trivial but it'll have to be done to the native code. recvfrom() is not affected by this bug.
Filed as bug #262.