OpenCoverage

platform-tracing.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssh/src/platform-tracing.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/*-
2 * Copyright (c) 2016 Darren Tucker. All rights reserved.-
3 *-
4 * Permission to use, copy, modify, and distribute this software for any-
5 * purpose with or without fee is hereby granted, provided that the above-
6 * copyright notice and this permission notice appear in all copies.-
7 *-
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES-
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF-
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR-
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES-
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN-
13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF-
14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.-
15 */-
16-
17#include "includes.h"-
18-
19#include <sys/types.h>-
20#if defined(HAVE_SYS_PRCTL_H)-
21#include <sys/prctl.h> /* For prctl() and PR_SET_DUMPABLE */-
22#endif-
23#ifdef HAVE_SYS_PTRACE_H-
24#include <sys/ptrace.h>-
25#endif-
26#ifdef HAVE_PRIV_H-
27#include <priv.h> /* For setpflags() and __PROC_PROTECT */-
28#endif-
29#include <stdarg.h>-
30-
31#include "log.h"-
32-
33void-
34platform_disable_tracing(int strict)-
35{-
36#if defined(HAVE_PRCTL) && defined(PR_SET_DUMPABLE)-
37 /* Disable ptrace on Linux without sgid bit */-
38 if (prctl(PR_SET_DUMPABLE, 0) != 0 && strict)
prctl( 4 , 0) != 0Description
TRUEnever evaluated
FALSEnever evaluated
strictDescription
TRUEnever evaluated
FALSEnever evaluated
0
39 fatal("unable to make the process undumpable");
never executed: fatal("unable to make the process undumpable");
0
40#endif-
41#if defined(HAVE_SETPFLAGS) && defined(__PROC_PROTECT)-
42 /* On Solaris, we should make this process untraceable */-
43 if (setpflags(__PROC_PROTECT, 1) != 0 && strict)-
44 fatal("unable to make the process untraceable");-
45#endif-
46#ifdef PT_DENY_ATTACH-
47 /* Mac OS X */-
48 if (ptrace(PT_DENY_ATTACH, 0, 0, 0) == -1 && strict)-
49 fatal("unable to set PT_DENY_ATTACH");-
50#endif-
51}
never executed: end of block
0
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2