version 1.18.2.1, 2006/09/30 04:06:51 |
version 1.19, 2006/03/25 22:22:43 |
|
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
*/ |
|
#ifndef SSHCONNECT_H |
|
#define SSHCONNECT_H |
|
|
typedef struct Sensitive Sensitive; |
typedef struct Sensitive Sensitive; |
struct Sensitive { |
struct Sensitive { |
|
|
/* |
/* |
* Macros to raise/lower permissions. |
* Macros to raise/lower permissions. |
*/ |
*/ |
#define PRIV_START do { \ |
#define PRIV_START do { \ |
int save_errno = errno; \ |
int save_errno = errno; \ |
if (seteuid(original_effective_uid) != 0) \ |
(void)seteuid(original_effective_uid); \ |
fatal("PRIV_START: seteuid: %s", \ |
errno = save_errno; \ |
strerror(errno)); \ |
|
errno = save_errno; \ |
|
} while (0) |
} while (0) |
|
|
#define PRIV_END do { \ |
#define PRIV_END do { \ |
int save_errno = errno; \ |
int save_errno = errno; \ |
if (seteuid(original_real_uid) != 0) \ |
(void)seteuid(original_real_uid); \ |
fatal("PRIV_END: seteuid: %s", \ |
errno = save_errno; \ |
strerror(errno)); \ |
|
errno = save_errno; \ |
|
} while (0) |
} while (0) |
|
|
|
#endif |