diff --git a/main/utils.c b/main/utils.c index 915026745c..246c384604 100644 --- a/main/utils.c +++ b/main/utils.c @@ -2813,9 +2813,17 @@ int __ast_fd_set_flags(int fd, int flags, enum ast_fd_flag_operation op, switch (op) { case AST_FD_FLAG_SET: + if ((f & flags) == flags) { + /* There is nothing to set */ + return 0; + } f |= flags; break; case AST_FD_FLAG_CLEAR: + if (!(f & flags)) { + /* There is nothing to clear */ + return 0; + } f &= ~flags; break; default: