fixed 3 bugs in the wins server code related to precedence of ! and &
authorAndrew Tridgell <tridge@samba.org>
Thu, 3 Oct 2002 13:28:44 +0000 (13:28 +0000)
committerAndrew Tridgell <tridge@samba.org>
Thu, 3 Oct 2002 13:28:44 +0000 (13:28 +0000)
in C

please note that:
 if (! a & b)
is not the same as:
 if (! (a & b))
(This used to be commit ec6a098c2edf6aa44f85b031459b737496080898)

source3/nmbd/nmbd_winsserver.c

index 13554a9430b9f82a3da90fe0f783d041d95001d9..ee47cff0495663fbf6e2474b72178ef035d19a23 100644 (file)
@@ -1952,8 +1952,8 @@ void nmbd_wins_new_entry(int msg_type, pid_t src, void *buf, size_t len)
                /* I'm giving up on multi homed. Too much complex to understand */
                
                if (record->wins_flags&WINS_MHOMED) {
-                       if (! namerec->data.wins_flags&WINS_ACTIVE) {
-                               if ( !namerec->data.wins_flags&WINS_RELEASED && !namerec->data.wins_flags&WINS_NGROUP)
+                       if (! (namerec->data.wins_flags&WINS_ACTIVE)) {
+                               if ( !(namerec->data.wins_flags&WINS_RELEASED) && !(namerec->data.wins_flags&WINS_NGROUP))
                                        overwrite=True;
                        }
                        else {