Index: sys/netgraph/ng_nat.c =================================================================== --- sys/netgraph/ng_nat.c +++ sys/netgraph/ng_nat.c @@ -365,15 +365,17 @@ { struct ng_nat_mode *const mode = (struct ng_nat_mode *)msg->data; + unsigned int flags, mask; if (msg->header.arglen < sizeof(*mode)) { error = EINVAL; break; } - - if (LibAliasSetMode(priv->lib, - ng_nat_translate_flags(mode->flags), - ng_nat_translate_flags(mode->mask)) < 0) { + + flags = ng_nat_translate_flags(mode->flags); + mask = ng_nat_translate_flags(mode->mask); + if ((LibAliasSetMode(priv->lib, flags, mask) & mask) != + (flags & mask)) { error = ENOMEM; break; } Index: sys/netinet/libalias/alias_db.c =================================================================== --- sys/netinet/libalias/alias_db.c +++ sys/netinet/libalias/alias_db.c @@ -2575,14 +2575,16 @@ * do a probe for flag values) */ ) { - int res = -1; + unsigned int res; LIBALIAS_LOCK(la); /* Enable logging? */ if (flags & mask & PKT_ALIAS_LOG) { /* Do the enable */ - if (InitPacketAliasLog(la) == ENOMEM) + if (InitPacketAliasLog(la) == ENOMEM) { + res = la->packetAliasMode; goto getout; + } } else /* _Disable_ logging? */ if (~flags & mask & PKT_ALIAS_LOG) {