cipso: handle CIPSO options correctly when NetLabel is disabled
authorPaul Moore <pmoore@redhat.com>
Fri, 1 Jun 2012 05:54:56 +0000 (05:54 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 1 Jun 2012 18:18:29 +0000 (14:18 -0400)
commit20e2a86485967c385d7c7befc1646e4d1d39362e
treee08d5d8dd133a8548e9f5dd0f85e69241ec1e176
parentcc9b17ad29ecaa20bfe426a8d4dbfb94b13ff1cc
cipso: handle CIPSO options correctly when NetLabel is disabled

When NetLabel is not enabled, e.g. CONFIG_NETLABEL=n, and the system
receives a CIPSO tagged packet it is dropped (cipso_v4_validate()
returns non-zero).  In most cases this is the correct and desired
behavior, however, in the case where we are simply forwarding the
traffic, e.g. acting as a network bridge, this becomes a problem.

This patch fixes the forwarding problem by providing the basic CIPSO
validation code directly in ip_options_compile() without the need for
the NetLabel or CIPSO code.  The new validation code can not perform
any of the CIPSO option label/value verification that
cipso_v4_validate() does, but it can verify the basic CIPSO option
format.

The behavior when NetLabel is enabled is unchanged.

Signed-off-by: Paul Moore <pmoore@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/cipso_ipv4.h