naweiss · GitHub

Bug report

Running the following code works:

import socket
with socket.socket() as s:
    s.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 2)

But if someone accidently passes a big value like so:

import socket
with socket.socket() as s:
    s.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 2 ** 31)

He will get the follwing misleading error message: TypeError: a bytes-like object is required, not 'int'

Your environment

  • CPython versions tested on: 3.13.0a0
  • Operating system and architecture: x64 Ubuntu 20.04 LTS and Win10 x64 22H2

Linked PRs

Read the original on github.com ↗