From 04e6f6e3da2567a0d42c51d1ae566a6cc99bd783 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Thu, 7 Mar 2024 09:57:22 +0100 Subject: [PATCH] osmo_io: Guard osmo_iofd_register() with invalid file descriptor Let's return an error if both osmo_iofd_setup() and osmo_iofd_register() are called with an invalid file descriptor like -1. Either one of them must have been called with a valid file descriptor. Change-Id: Ie4561cefad82e1bf5d37dd1a4815f4bc805343e6 --- src/core/osmo_io.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/core/osmo_io.c b/src/core/osmo_io.c index 5a5e05c76..f0d213cdd 100644 --- a/src/core/osmo_io.c +++ b/src/core/osmo_io.c @@ -672,6 +672,11 @@ int osmo_iofd_register(struct osmo_io_fd *iofd, int fd) if (fd >= 0) iofd->fd = fd; + else if (iofd->fd < 0) { + /* this might happen if both osmo_iofd_setup() and osmo_iofd_register() are called with -1 */ + LOGPIO(iofd, LOGL_ERROR, "Cannot register io_fd using invalid fd == %d\n", iofd->fd); + return -EBADF; + } if (osmo_iofd_ops.register_fd) rc = osmo_iofd_ops.register_fd(iofd);