xselinux: Implement polyinstantiation support and related protocol.

(cherry picked from commit d4101140f4)
This commit is contained in:
Eamon Walsh 2008-03-04 22:39:41 -05:00 committed by Eamon Walsh
parent e4d92a13e8
commit 9de621afee
2 changed files with 717 additions and 445 deletions

File diff suppressed because it is too large Load Diff

View File

@ -31,21 +31,27 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
/* Extension protocol */ /* Extension protocol */
#define X_SELinuxQueryVersion 0 #define X_SELinuxQueryVersion 0
#define X_SELinuxSetSecurityManager 1 #define X_SELinuxSetDeviceCreateContext 1
#define X_SELinuxGetSecurityManager 2 #define X_SELinuxGetDeviceCreateContext 2
#define X_SELinuxSetDeviceCreateContext 3 #define X_SELinuxSetDeviceContext 3
#define X_SELinuxGetDeviceCreateContext 4 #define X_SELinuxGetDeviceContext 4
#define X_SELinuxSetDeviceContext 5 #define X_SELinuxSetWindowCreateContext 5
#define X_SELinuxGetDeviceContext 6 #define X_SELinuxGetWindowCreateContext 6
#define X_SELinuxSetPropertyCreateContext 7 #define X_SELinuxGetWindowContext 7
#define X_SELinuxGetPropertyCreateContext 8 #define X_SELinuxSetPropertyCreateContext 8
#define X_SELinuxGetPropertyContext 9 #define X_SELinuxGetPropertyCreateContext 9
#define X_SELinuxSetWindowCreateContext 10 #define X_SELinuxSetPropertyUseContext 10
#define X_SELinuxGetWindowCreateContext 11 #define X_SELinuxGetPropertyUseContext 11
#define X_SELinuxGetWindowContext 12 #define X_SELinuxGetPropertyContext 12
#define X_SELinuxSetSelectionCreateContext 13 #define X_SELinuxGetPropertyDataContext 13
#define X_SELinuxGetSelectionCreateContext 14 #define X_SELinuxListProperties 14
#define X_SELinuxGetSelectionContext 15 #define X_SELinuxSetSelectionCreateContext 15
#define X_SELinuxGetSelectionCreateContext 16
#define X_SELinuxSetSelectionUseContext 17
#define X_SELinuxGetSelectionUseContext 18
#define X_SELinuxGetSelectionContext 19
#define X_SELinuxGetSelectionDataContext 20
#define X_SELinuxListSelections 21
typedef struct { typedef struct {
CARD8 reqType; CARD8 reqType;
@ -53,7 +59,6 @@ typedef struct {
CARD16 length; CARD16 length;
CARD8 client_major; CARD8 client_major;
CARD8 client_minor; CARD8 client_minor;
CARD16 unused;
} SELinuxQueryVersionReq; } SELinuxQueryVersionReq;
typedef struct { typedef struct {
@ -74,35 +79,7 @@ typedef struct {
CARD8 reqType; CARD8 reqType;
CARD8 SELinuxReqType; CARD8 SELinuxReqType;
CARD16 length; CARD16 length;
CARD32 window; CARD32 context_len;
} SELinuxSetSecurityManagerReq;
typedef struct {
CARD8 reqType;
CARD8 SELinuxReqType;
CARD16 length;
} SELinuxGetSecurityManagerReq;
typedef struct {
CARD8 type;
CARD8 pad1;
CARD16 sequenceNumber;
CARD32 length;
CARD32 window;
CARD32 pad2;
CARD32 pad3;
CARD32 pad4;
CARD32 pad5;
CARD32 pad6;
} SELinuxGetSecurityManagerReply;
typedef struct {
CARD8 reqType;
CARD8 SELinuxReqType;
CARD16 length;
CARD8 permanent;
CARD8 unused;
CARD16 context_len;
} SELinuxSetCreateContextReq; } SELinuxSetCreateContextReq;
typedef struct { typedef struct {
@ -111,27 +88,12 @@ typedef struct {
CARD16 length; CARD16 length;
} SELinuxGetCreateContextReq; } SELinuxGetCreateContextReq;
typedef struct {
CARD8 type;
CARD8 permanent;
CARD16 sequenceNumber;
CARD32 length;
CARD16 context_len;
CARD16 pad1;
CARD32 pad2;
CARD32 pad3;
CARD32 pad4;
CARD32 pad5;
CARD32 pad6;
} SELinuxGetCreateContextReply;
typedef struct { typedef struct {
CARD8 reqType; CARD8 reqType;
CARD8 SELinuxReqType; CARD8 SELinuxReqType;
CARD16 length; CARD16 length;
CARD32 id; CARD32 id;
CARD16 unused; CARD32 context_len;
CARD16 context_len;
} SELinuxSetContextReq; } SELinuxSetContextReq;
typedef struct { typedef struct {
@ -154,15 +116,27 @@ typedef struct {
CARD8 pad1; CARD8 pad1;
CARD16 sequenceNumber; CARD16 sequenceNumber;
CARD32 length; CARD32 length;
CARD16 context_len; CARD32 context_len;
CARD16 pad2; CARD32 pad2;
CARD32 pad3; CARD32 pad3;
CARD32 pad4; CARD32 pad4;
CARD32 pad5; CARD32 pad5;
CARD32 pad6; CARD32 pad6;
CARD32 pad7;
} SELinuxGetContextReply; } SELinuxGetContextReply;
typedef struct {
CARD8 type;
CARD8 pad1;
CARD16 sequenceNumber;
CARD32 length;
CARD32 count;
CARD32 pad2;
CARD32 pad3;
CARD32 pad4;
CARD32 pad5;
CARD32 pad6;
} SELinuxListItemsReply;
/* Private Flask definitions */ /* Private Flask definitions */
#define SECCLASS_X_DRAWABLE 1 #define SECCLASS_X_DRAWABLE 1