diff --git a/apps/sam/python/src/i2p/socket.py b/apps/sam/python/src/i2p/socket.py index bd67a21a4a4adb6e54ed607c01b3bdfcd089ee7e..c3609a8fe686f0568e5fd63ddf776f3c3cffc33b 100644 --- a/apps/sam/python/src/i2p/socket.py +++ b/apps/sam/python/src/i2p/socket.py @@ -416,11 +416,14 @@ class Socket: if self.type == SOCK_STREAM: self._verify_connected() - if bufsize < 0: raise ValueError('bufsize must be >= 0') + if bufsize < 0: raise ValueError('bufsize must be >= 0 for streams') return (self.sessobj.recv(bufsize, timeout, peek, waitall), \ self.remotedest) else: - return self.sessobj.recv(timeout, peek)[:bufsize] + if bufsize < -1: + raise ValueError('bufsize must be >= -1 for packets') + (data, addr) = self.sessobj.recv(timeout, peek) + return (data[:bufsize], addr) def send(self, string, flags=0): """Sends string data to a remote Destination.