Update github.com git:// SRC_URIs
[AGL/meta-agl.git] / meta-app-framework / recipes-support / libcap / libcap / removing-capability-enforcement.patch
1 From c34b2725817d4fd1fd6878bbb16617cb9e3e3a70 Mon Sep 17 00:00:00 2001
2 From: =?UTF-8?q?Jos=C3=A9=20Bollo?= <jose.bollo@iot.bzh>
3 Date: Fri, 22 Jan 2016 16:23:59 +0100
4 Subject: [PATCH] removing capability enforcement
5
6 Signed-off-by: ronan <ronan@iot.bzh>
7
8 Change-Id: Idb724192ceab176a611bbed45c0ebc9c8eb5dd30
9 ---
10  progs/setcap.c | 45 +--------------------------------------------
11  1 file changed, 1 insertion(+), 44 deletions(-)
12
13 diff --git a/progs/setcap.c b/progs/setcap.c
14 index 7304343..71999b6 100644
15 --- a/progs/setcap.c
16 +++ b/progs/setcap.c
17 @@ -58,11 +58,9 @@ static int read_caps(int quiet, const char *filename, char *buffer)
18  
19  int main(int argc, char **argv)
20  {
21 -    int tried_to_cap_setfcap = 0;
22      char buffer[MAXCAP+1];
23      int retval, quiet=0, verify=0;
24      cap_t mycaps;
25 -    cap_value_t capflag;
26  
27      if (argc < 3) {
28         usage();
29 @@ -150,54 +148,13 @@ int main(int argc, char **argv)
30                 printf("%s: OK\n", *argv);
31             }
32         } else {
33 -           if (!tried_to_cap_setfcap) {
34 -               capflag = CAP_SETFCAP;
35 -
36 -               /*
37 -                * Raise the effective CAP_SETFCAP.
38 -                */
39 -               if (cap_set_flag(mycaps, CAP_EFFECTIVE, 1, &capflag, CAP_SET)
40 -                   != 0) {
41 -                   perror("unable to manipulate CAP_SETFCAP - "
42 -                          "try a newer libcap?");
43 -                   exit(1);
44 -               }
45 -               if (cap_set_proc(mycaps) != 0) {
46 -                   perror("unable to set CAP_SETFCAP effective capability");
47 -                   exit(1);
48 -               }
49 -               tried_to_cap_setfcap = 1;
50 -           }
51             retval = cap_set_file(*++argv, cap_d);
52             if (retval != 0) {
53 -               int explained = 0;
54                 int oerrno = errno;
55 -#ifdef linux
56 -               cap_value_t cap;
57 -               cap_flag_value_t per_state;
58 -
59 -               for (cap = 0;
60 -                    cap_get_flag(cap_d, cap, CAP_PERMITTED, &per_state) != -1;
61 -                    cap++) {
62 -                   cap_flag_value_t inh_state, eff_state;
63 -
64 -                   cap_get_flag(cap_d, cap, CAP_INHERITABLE, &inh_state);
65 -                   cap_get_flag(cap_d, cap, CAP_EFFECTIVE, &eff_state);
66 -                   if ((inh_state | per_state) != eff_state) {
67 -                       fprintf(stderr, "NOTE: Under Linux, effective file capabilities must either be empty, or\n"
68 -                               "      exactly match the union of selected permitted and inheritable bits.\n");
69 -                       explained = 1;
70 -                       break;
71 -                   }
72 -               }
73 -#endif /* def linux */
74 -               
75                 fprintf(stderr,
76                         "Failed to set capabilities on file `%s' (%s)\n",
77                         argv[0], strerror(oerrno));
78 -               if (!explained) {
79 -                   usage();
80 -               }
81 +
82             }
83         }
84         if (cap_d) {
85 -- 
86 2.6.6
87