From bedf16b0413155ad384811a55743196aa98aa800 Mon Sep 17 00:00:00 2001
From: Sean Bright <sean.bright@gmail.com>
Date: Tue, 11 Dec 2018 10:06:15 -0500
Subject: [PATCH] utils: Don't set or clear flags that don't need setting or
 clearing

Change-Id: I0e7fb507ac09b15e45e1ff8501ecfca67afa5217
---
 main/utils.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/main/utils.c b/main/utils.c
index e0b8a6ec02..b45e7b5179 100644
--- a/main/utils.c
+++ b/main/utils.c
@@ -2730,9 +2730,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:
-- 
GitLab