I'm talking about net/netfilter/nfnetlink_log.c::^nfulnl_recv_config
below. I'm totally confused and beer supply almost ended, so can someone else
also look at it...

Put your attention at line 905:

net/netfilter/nfnetlink_log.c:

   902          if (nfula[NFULA_CFG_FLAGS-1]) {
   903                  u_int16_t flags =
   904                          *(u_int16_t 
*)NFA_DATA(nfula[NFULA_CFG_FLAGS-1]);
   905                  nfulnl_set_flags(inst, ntohl(flags));


1) Cast should be made to __be16, and history of fixing endian warning
   slightly above supports it.
2) Assuming __be16, ntohl(__be16) is whooops.
3) nfulnl_set_flags() wants something 16-bit wide as a second argument,
   so ntohling there is double whoops.
4) NFULNL_CFG_F_SEQ* defines fit into 16 bit and are host-endian;
   inst->flags is &'ed with host endian so it's probably host-endian and

   static int
   nfulnl_set_flags(struct nfulnl_instance *inst, u_int16_t flags)
                                                  ^^^^^^^^^
                                                  this should be made __be16.
   {
        spin_lock_bh(&inst->lock);
        inst->flags = ntohs(flags);
        spin_unlock_bh(&inst->lock);
        return 0;
   }

   What to do with lines 903-905 if it is.

        Alexey "confused in Moscow" Dobriyan

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to