]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
utils: Don't set or clear flags that don't need setting or clearing
authorSean Bright <sean.bright@gmail.com>
Tue, 11 Dec 2018 15:06:15 +0000 (10:06 -0500)
committerSean Bright <sean.bright@gmail.com>
Tue, 11 Dec 2018 15:08:02 +0000 (10:08 -0500)
Change-Id: I0e7fb507ac09b15e45e1ff8501ecfca67afa5217

main/utils.c

index e0b8a6ec029eb95c78b648900bda3545a6496675..b45e7b51797093e6f99e74facf28d522281426d7 100644 (file)
@@ -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: