All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joshua Brindle <jbrindle@tresys.com>
To: Stephen Smalley <sds@tycho.nsa.gov>
Cc: Ivan Gyurdiev <ivg2@cornell.edu>, SELinux List <SELinux@tycho.nsa.gov>
Subject: Re: [ SEPOL ] Move more things to newer debug system
Date: Wed, 14 Sep 2005 09:21:52 -0400	[thread overview]
Message-ID: <432823F0.3030803@tresys.com> (raw)
In-Reply-To: <1126702811.12299.29.camel@moss-spartans.epoch.ncsc.mil>

Stephen Smalley wrote:

>On Tue, 2005-09-13 at 23:33 -0400, Ivan Gyurdiev wrote:
>  
>
>>Yes, I agree here - the DEBUG system is really doing error handling...
>>it detects an error condition, and informs the caller of what went wrong 
>>at every level of
>>the function stack (at least that's how I use it in the user and port 
>>functions). It has no effect
>>if there is no error condition. Perhaps it's a misnomer.
>>    
>>
>
>To be precise, DEBUG() is providing supplemental information when an
>error occurs to help in debugging the underlying cause.  The error
>handling itself consists of just returning an error code up the call
>chain (although they aren't as informative as one might like).
>write_error() is likewise providing supplemental information when an
>error occurs, but is focused on just reporting informative error
>messages to the user rather than helping with debugging the underlying
>cause or the precise point of failure.
>
>  
>
Yes, and I think we all agree that we need better error reporting to the 
calling functions, we particularly need this in things like linking and 
expanding where alot of stuff happens deep in libsepol and there are 
many possible error, conditions, many of which the user needs to know 
about in order to fix the policy (dependancy problems, etc)

>write_error() is also limited to a single error message, whereas DEBUG()
>can emit any number of messages during a single operation.  This shows
>up particularly in the assertion checking code where we'd like (at least
>for checkpolicy) to report all assertion violations in one pass.
>Similarly, it would be nice if the hieararchy checking code could report
>all violations in one pass (and if it provided more detail about the
>actual cause of the violation).
>  
>

Fair enough, for things like assertion and hierarchy checking we can 
pass a function pointer in and use the same basic system without the 
global DEBUG function pointer and still get what we want there. If we 
tried to use DEBUG for error reporting (as I think Ivan is suggesting) 
the calling function wouldn't get an error code, and thus check it's own 
error state until the first call in the chain and could potentially lose 
information. Having the specific error from the lowest point of failure 
seems much more useful than getting a less and less specific error from 
each funtion while propagating error codes.

I know modifying every function in sepol to use a write_error like 
system is undesirable but libsemanage already has write_error used 
exclusively so going to DEBUG with it also seems undesirable. 
libsemanage already passes a handle which contains an error buffer which 
gives us thread safety and the ability to easily return errors in a way 
the client app can use them (semodule will probably just print them out, 
whereas the policy server will have to do more).

--
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.

  reply	other threads:[~2005-09-14 13:21 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-09-12 12:06 [ SEMANAGE ] Stub out user/port functionality Ivan Gyurdiev
2005-09-12 14:14 ` [ SEMANAGE ] Introduce record table Ivan Gyurdiev
2005-09-13  3:55   ` [ SEPOL ] Move more things to newer debug system Ivan Gyurdiev
2005-09-13 19:59     ` Stephen Smalley
2005-09-13 22:26       ` Ivan Gyurdiev
2005-09-13 23:03         ` Joshua Brindle
2005-09-14  3:33           ` Ivan Gyurdiev
2005-09-14  3:37             ` Ivan Gyurdiev
2005-09-14 13:16               ` Stephen Smalley
2005-09-14 14:05                 ` Dale Amon
2005-09-14 18:07                   ` Stephen Smalley
2005-09-14 23:44                     ` Dale Amon
2005-09-14  7:00             ` Luke Kenneth Casson Leighton
2005-09-14 12:11               ` Stephen Smalley
2005-09-14  7:01             ` Luke Kenneth Casson Leighton
2005-09-14 13:00             ` Stephen Smalley
2005-09-14 13:21               ` Joshua Brindle [this message]
2005-09-14 13:51                 ` Stephen Smalley
2005-09-14 14:45                   ` Joshua Brindle
2005-09-14 15:04                     ` Stephen Smalley
2005-09-14 15:26                       ` info on SELinux support for IPSEC Prakash Saivasan
2005-09-14 18:20                         ` Stephen Smalley
2005-09-14 15:33                       ` [ SEPOL ] Move more things to newer debug system Joshua Brindle
2005-09-14 15:38                         ` Stephen Smalley
2005-09-14 16:06                           ` Joshua Brindle
2005-09-14 16:24                             ` Stephen Smalley
2005-09-14 17:16                               ` Ivan Gyurdiev
2005-09-14 17:21                                 ` Ivan Gyurdiev
2005-09-14 18:53                                 ` Stephen Smalley
2005-09-16 13:48                                 ` Luke Kenneth Casson Leighton
2005-09-14 19:37                             ` Ivan Gyurdiev
2005-09-14 19:50                               ` Stephen Smalley
2005-09-14 20:01                                 ` Stephen Smalley
2005-09-14 20:32                                 ` Ivan Gyurdiev
2005-09-15  7:31                                   ` Ivan Gyurdiev
2005-09-15 12:22                                     ` Stephen Smalley
2005-09-15 13:01                                     ` Stephen Smalley
2005-09-15 15:17                               ` Stephen Smalley
2005-09-15 16:03                                 ` Ivan Gyurdiev
2005-09-16 12:19                                   ` Stephen Smalley
2005-09-18  3:14                                     ` Ivan Gyurdiev
2005-09-16 13:45                               ` Luke Kenneth Casson Leighton
2005-09-16 13:55                           ` Luke Kenneth Casson Leighton
2005-09-18  3:16                           ` Ivan Gyurdiev
2005-09-18  3:52                             ` Ivan Gyurdiev
2005-09-18 15:45                               ` Ivan Gyurdiev
2005-09-19 12:49                               ` Stephen Smalley
2005-09-19 14:05                                 ` Ivan Gyurdiev
2005-09-19 14:45                                   ` Stephen Smalley
2005-09-19 16:24                                     ` Ivan Gyurdiev
2005-09-19 16:49                                       ` Stephen Smalley
2005-09-19 17:16                                         ` Ivan Gyurdiev
2005-09-19 18:26                                           ` Stephen Smalley
2005-09-14 19:57                     ` Ivan Gyurdiev
2005-09-14 12:35         ` Stephen Smalley
2005-09-14 15:51     ` Stephen Smalley
2005-09-13 19:43   ` [ SEMANAGE ] Introduce record table Stephen Smalley
2005-09-13 22:15     ` Ivan Gyurdiev
2005-09-13 22:46       ` Ivan Gyurdiev
2005-09-14 15:46   ` Stephen Smalley
2005-09-14 15:45 ` [ SEMANAGE ] Stub out user/port functionality 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=432823F0.3030803@tresys.com \
    --to=jbrindle@tresys.com \
    --cc=SELinux@tycho.nsa.gov \
    --cc=ivg2@cornell.edu \
    --cc=sds@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.