All of lore.kernel.org
 help / color / mirror / Atom feed
From: Caleb Case <ccase@tresys.com>
To: Joshua Brindle <method@manicmethod.com>
Cc: Karl MacMillan <kmacmillan@mentalrootkit.com>,
	B Topscher <bryan@jennandbryan.com>,
	selinux@tycho.nsa.gov, dgoeddel@TrustedCS.com,
	Stephen Smalley <sds@tycho.nsa.gov>
Subject: Re: [BUG] Segfault on duplicate require of sensitivity
Date: Fri, 25 May 2007 13:26:16 -0400	[thread overview]
Message-ID: <1180113976.20054.5.camel@localhost> (raw)
In-Reply-To: <4649EB49.1070302@manicmethod.com>

On Tue, 2007-05-15 at 13:18 -0400, Joshua Brindle wrote:
> Caleb Case wrote:
> > On Tue, 2007-05-15 at 10:39 -0400, Karl MacMillan wrote:
> >   
> >> On Tue, 2007-05-15 at 10:16 -0400, Caleb Case wrote:
> >>     
> >>> It turns out that level_datum_t is not defined as an actual datum:
> >>>
> >>>       
> >> [...]
> >>
> >>     
> >>> The options I see here are not good.  One option: the level_datum_t
> >>> should be changed into a conforming *_datum_t and the fallout of this
> >>> change handled in the rest of the code which expects to see a
> >>> level_datum_t->level.  Second option: level_datum_t is treated specially
> >>> in require_symbol (using the symbol_type as the switch).
> >>>
> >>>       
> >> Making it a _datum_t seems to be the right choice - what is your concern
> >> about following that path?
> >>
> >> Karl
> >>     
> >
> > Mainly I am concerned because level_datum_t is exported in libsepol's
> > protected headers and will require changes to anything that statically
> > links to libsepol.
> >
> >   
> Err, I don't think this is the main issue. The level datum references 
> the sens_datum, which exists independantly of the level_datum. I think 
> it would cause all sorts of problems to try to change that in the 
> current code base.
> 
> Another option is to just punt on this and it should be handled 
> naturally in the policyrep branch.

This is option 2: special case the level_datum_t handling.

Index: checkpolicy/module_compiler.c
===================================================================
--- checkpolicy/module_compiler.c	(revision 2421)
+++ checkpolicy/module_compiler.c	(working copy)
@@ -142,7 +142,12 @@
 						      symtab[symbol_type].table,
 						      key);
 		assert(s != NULL);
-		*dest_value = s->value;
+		
+		if (symbol_type == SYM_LEVELS) {
+			*dest_value = ((level_datum_t *)s)->level->sens;
+		} else {
+			*dest_value = s->value;
+		}
 	} else if (retval == -2) {
 		return -2;
 	} else if (retval < 0) {
@@ -496,7 +501,12 @@
 						      symtab[symbol_type].table,
 						      key);
 		assert(s != NULL);
-		*dest_value = s->value;
+		
+		if (symbol_type == SYM_LEVELS) {
+			*dest_value = ((level_datum_t *)s)->level->sens;
+		} else {
+			*dest_value = s->value;
+		}
 	} else if (retval == -2) {
 		/* ignore require statements if that symbol was
 		 * previously declared and is in current scope */

-- 
Caleb Case
Tresys Technology
410-290-1411 x144

--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

  parent reply	other threads:[~2007-05-25 17:26 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-19 15:29 [BUG] Segfault on duplicate require of sensitivity B Topscher
2007-05-15 14:16 ` Caleb Case
2007-05-15 14:39   ` Karl MacMillan
2007-05-15 17:09     ` Caleb Case
2007-05-15 17:18       ` Joshua Brindle
2007-05-15 17:19         ` Karl MacMillan
2007-05-15 17:40           ` Joshua Brindle
2007-05-25 17:26         ` Caleb Case [this message]
2007-05-31 18:25           ` Stephen Smalley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1180113976.20054.5.camel@localhost \
    --to=ccase@tresys.com \
    --cc=bryan@jennandbryan.com \
    --cc=dgoeddel@TrustedCS.com \
    --cc=kmacmillan@mentalrootkit.com \
    --cc=method@manicmethod.com \
    --cc=sds@tycho.nsa.gov \
    --cc=selinux@tycho.nsa.gov \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.