EBADR
Linux / POSIXERRORNotableDeviceHIGH confidence

Invalid Request Descriptor

Production Risk

Rare; STREAMS-specific programming error.

What this means

EBADR (errno 53) is a Linux-specific error returned when a request descriptor is invalid in a STREAMS or device driver context.

Why it happens
  1. 1Invalid request descriptor passed to a STREAMS ioctl or device driver
How to reproduce

STREAMS ioctl with bad request descriptor.

trigger — this will error
trigger — this will error
// errno = EBADR from STREAMS ioctl with invalid descriptor

expected output

Invalid request descriptor (EBADR)

Fix

Validate request descriptor before use

WHEN When constructing STREAMS requests

Validate request descriptor before use
// Ensure request descriptor is initialized properly
struct strioctl ioc = { .ic_cmd = MY_CMD, .ic_timout = 0,
                        .ic_len = sizeof(arg), .ic_dp = &arg };
ioctl(fd, I_STR, &ioc);

Why this works

Always initialize all fields of STREAMS request structures.

Sources
Official documentation ↗

Linux Programmer Manual errno(3)

Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev

← All Linux / POSIX errors